Il peut arriver que suite à une manipulation hasardeuse, ou « par volonté divine », la db console ne fonctionne plus correctement. Administrer en SQL c’est bien, mais la console permet de réaliser certaines opérations plus facilement ou rapidement. Que faire alors ?
Pour réinstaller la DBconsole sur un serveur en standalone, il faut dans un premier temps supprimer la db console existante puis la recréer. Pour réaliser cette manipulation, voici les étapes.
On peut garder la base ouverte, sinon elle peut être en mode restrict :
SQL> STARTUP RESTRICT;
Ensuite, il va falloir supprimer l’utilisateur SYSMAN, tous ses synonymes publics, et le rôle auquel il appartient.
En effet, le package va essayer de récréer tous ces objets en base, s’ils existent déjà, une erreur va être remontée.
Dans un premier temps, il faut supprimer les synonymes publics :
DECLARE CURSOR cur_sysman IS SELECT owner, synonym_name name FROM dba_synonyms WHERE table_owner = 'SYSMAN'; BEGIN FOR rec_sysman IN cur_sysman LOOP IF rec_sysman.owner = 'PUBLIC' THEN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM '||rec_sysman.name; ELSE EXECUTE IMMEDIATE 'DROP SYNONYM '||rec_sysman.owner||'.'||rec_sysman.name; END IF; END LOOP; END; /
Supprimer le schéma MGMT_VIEW :
SQL> DROP USER mgmt_view CASCADE;
Supprimer le rôle associé au schéma SYSMAN :
SQL> DROP ROLE mgmt_user;
Et enfin, supprimer le schéma SYSMAN :
SQL> DROP USER sysman CASCADE;
Maintenant on peut récréer le répository et configurer la dbconsole avec la commande :
[oracle]$ emca -config dbcontrol db -repos create
Il suffit alors de répondre aux questions dans le prompt (SID de la base, listener, ORACLE_HOME …), et hop !
2 réflexions sur “Réinstaller la db console”
Précision, le emca -config ne fonctionne qu’à partir de la 10.2. En 10.1 il faut utiliser emca sans paramètre et répondre aux questions
Bien vu Baptiste,
quelque fois cela marche aussi avec
emca -deconfig dbcontrol db -repos drop avant de faire le create
ou
emca -config dbcontrol db -repos recreate
Mais la solution que tu donnes du drop des synonymes permet souvent de s’en sortir (ils sont oubliés!)