Réinstaller la db console

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”

  1. 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

  2. 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!)

Les commentaires sont fermés.