sql >> Base de Datos >  >> RDS >> Oracle

Ejecutar comprobador

He notado que después de actualizar algunas de mis bases de datos de desarrollo desde producción, recibo una alerta de "Ejecución del verificador" para la base de datos recién actualizada. No hay mucha información disponible, así que pensé en escribir cómo determinar cuál es exactamente la causa.

En Grid Control, veo alertas similares a las siguientes:

Entonces, ¿qué son estas "fallas persistentes de datos"? Desafortunadamente, la alerta no da más detalles. Depende de ti resolverlo.

El nuevo Health Monitor de Oracle realiza una verificación de la base de datos y ha determinado que hay fallas. Es HM quien está encontrando estas fallas y reportándolas a Grid Control. Puede ver las ejecuciones de HM consultando V$HM_RUN. En mi caso, necesito saber el ID de la ejecución que dio este error.

Sé que el ID de ejecución es 45881. Ahora puedo usar el paquete DBMS_HM proporcionado para obtener un informe sobre esta ejecución que me brinda más detalles. El "nombre de ejecución" tiene el formato "HM_RUN_xxxxx", donde "xxxxx" es el ID de ejecución que determinamos anteriormente.

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

Había muchas más líneas que indicaban que el archivo necesita recuperación de medios, un mensaje para cada archivo de datos en la base de datos.

La respuesta ahora es clara. Actualicé esta base de datos desde una copia de seguridad activa de mi base de datos de producción. El verificador se ejecutó antes de que completara la recuperación y abriera la base de datos. Ahora tengo una idea definitiva de qué problema encontró el verificador.

La alerta no se borrará por sí sola, por lo que tendrá que regresar y borrar manualmente la alerta en Grid Control.