J'ai remarqué qu'après avoir actualisé certaines de mes bases de données de développement à partir de la production, je reçois une alerte "Checker Run" pour la base de données nouvellement actualisée. Il n'y a pas beaucoup d'informations disponibles, alors j'ai pensé que j'écrirais comment déterminer exactement la cause.
Dans Grid Control, je vois des alertes semblables aux suivantes :
Alors, que sont ces « pannes de données persistantes » ? Malheureusement, l'alerte ne donne pas plus de détails. C'est à vous de le découvrir.
Le nouveau moniteur de santé d'Oracle effectue une vérification de la base de données et a déterminé qu'il y a des échecs. C'est HM qui trouve ces pannes et les signale à Grid Control. Vous pouvez voir les exécutions HM en interrogeant V$HM_RUN. Dans mon cas, j'ai besoin de connaître l'ID de l'exécution qui a donné cette erreur.
Je sais que l'ID d'exécution est 45881. Je peux maintenant utiliser le package DBMS_HM fourni pour obtenir un rapport sur cette exécution qui me donne plus de détails. Le "nom d'exécution" est de la forme "HM_RUN_xxxxx" où "xxxxx" est l'ID d'exécution que nous avons déterminé ci-dessus.
SQL> SET LONG 999999999
SQL> SELECT dbms_hm.get_run_report('HM_RUN_45881') FROM dual;
DBMS_HM.GET_RUN_REPORT('HM_RUN_45881')
--------------------------------------------------------------------------------
Basic Run Information
Run Name : HM_RUN_45881
Run Id : 45881
Check Name : DB Structure Integrity Check
Mode : REACTIVE
Status : COMPLETED
Start Time : 2011-08-08 12:51:42.822626 -05:00
End Time : 2011-08-08 12:52:25.169770 -05:00
Error Encountered : 0
Source Incident Id : 0
Number of Incidents Created : 0
DBMS_HM.GET_RUN_REPORT('HM_RUN_45881')
--------------------------------------------------------------------------------
Input Paramters for the Run
Run Findings And Recommendations
Finding
Finding Name : Control File needs recovery
Finding ID : 45882
Type : FAILURE
Status : CLOSED
Priority : CRITICAL
Message : Control file needs media recovery
Message : Database cannot be opened
DBMS_HM.GET_RUN_REPORT('HM_RUN_45881')
--------------------------------------------------------------------------------
Finding
Finding Name : System datafile is old
Finding ID : 45885
Type : FAILURE
Status : CLOSED
Priority : CRITICAL
Message : System datafile 1:
'/u01/app/oracle/oradata/fgodba/data02/system01.dbf' needs
media recovery
Message : Database cannot be opened
Finding
Il y avait beaucoup plus de lignes indiquant toutes que le fichier avait besoin d'une récupération de média, un message pour chaque fichier de données dans la base de données.
La réponse est maintenant claire. J'ai actualisé cette base de données à partir d'une sauvegarde à chaud de ma base de données de production. Le vérificateur s'est exécuté avant que j'aie terminé la récupération et ouvert la base de données. J'ai maintenant une idée définitive du problème que le vérificateur a trouvé.
L'alerte ne s'effacera pas d'elle-même, vous devrez donc revenir en arrière et effacer manuellement l'alerte dans Grid Control.