Reconstruire la DBconsole sur 10g
De wikiGite
Initialiser ORACLE_HOSTNAME avec le bon nom de serveur
Initialiser ORACLE_SID (mais peut-être pas nécessaire)
Lancer
emca -config dbcontrol db -repos recreate
Eventuellement, pour être plus "propre", on peut la déconfigurer d'abord et la recréer ensuite
emca -deconfig dbcontrol db -repos drop emca -config dbcontrol db -repos create
Répondre aux questions (SID, port listener, mots de passe des users ORACLE)
Cette opération ne fonctionne pas toujours du premier coup, il n'est pas rare d'avoir à la relancer 2, voire 3 fois, avant d'avoir le message magique :
La configuration d'Enterprise Manager a reussi
En cas d'erreur :
SEVERE: Error creating the repository
Vérifier dans le log indiqué par le message. On doit trouver :
CONFIG: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 259
oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 259
oracle.sysman.emcp.exception.EMConfigException: Error creating the repository
Vérifier tout d'abord que le ORACLE_HOME est bien positionné. Si oui, c'est un problème de longueur de variable dans le fichier sql de création de la console. Cette variable doit contenir le nom complet (FQDN) du host, et fait 32 caractères par défaut.
Pour vérifier si c'est le cas, se connecter SYSDBA :
SYS@ORCL> select host_name, length(host_name) length from v$instance; HOST_NAME LENGTH ------------------------------------------------ ----------- hhhhhhhhhhhhhhhhh.dddddd.dddddddd 33 Elapsed: 00:00:00.09
Solution :
echo $ORACLE_HOME cd $ORACLE_HOME/sysman/admin/emdrep/sql/core/latest/self_monitor cp self_monitor_post_creation.sql self_monitor_post_creation.sql_bk
Editer self_monitor_post_creation.sql et remplacer
l_host_name VARCHAR2(32);
par une taille pouvant contenir le nom du host (idéalement, 128).
NOTE: Il y a 2 définitions de cette variable à remplacer dans le fichier sql.
Sauvegarder le script et recréer la console.