Oracle
 sql >> Database >  >> RDS >> Oracle

Corsa di controllo

Ho notato che dopo aver aggiornato alcuni dei miei database di sviluppo dalla produzione, ricevo un avviso "Checker Run" per il database appena aggiornato. Non ci sono molte informazioni là fuori, quindi ho pensato di scrivere come determinare quale sia esattamente la causa.

In Controllo griglia, vedo avvisi simili ai seguenti:

Quindi quali sono questi "errati dati persistenti"? Sfortunatamente, l'avviso non fornisce ulteriori dettagli. Sta a te capirlo.

Il nuovo Health Monitor di Oracle esegue un controllo del database e ha determinato la presenza di errori. È HM che trova questi guasti e li segnala a Grid Control. Puoi vedere le esecuzioni di HM interrogando V$HM_RUN. Nel mio caso, ho bisogno di conoscere l'ID della corsa che ha dato questo errore.

So che l'ID della corsa è 45881. Ora posso utilizzare il pacchetto DBMS_HM fornito per ottenere un rapporto su questa corsa che mi fornisce maggiori dettagli. Il "nome della corsa" ha la forma "HM_RUN_xxxxx" dove "xxxxx" è l'ID della corsa che abbiamo determinato sopra.

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

C'erano molte più righe che indicavano tutte che il file necessita di un ripristino del supporto, un messaggio per ogni file di dati nel database.

La risposta ora è chiara. Ho aggiornato questo database da un backup a caldo del mio database di produzione. Il controllo è stato eseguito prima che avessi completato il ripristino e aperto il database. Ora ho un'idea definitiva di quale problema ha riscontrato il correttore.

L'avviso non si cancellerà da solo, quindi dovrai tornare indietro e cancellare manualmente l'avviso in Controllo griglia.