DRA o Database Recovery Advisor es una utilidad del RMAN que nos hace mas fácil y acorta el tiempo de recuperación ante desastres ante daños de bloque de datos o archivos de datos de la base.
Database Recovery Advisor
Database Recovery Advisor (DRA) es un asistente para realizar recuperaciones en la base de datos de manera automática. Automáticamente diagnostica corrupción o perdida de archivos de base de datos en disco, el determina las opciones de recuperación y realiza la recuperación según la petición del usuario.
Esto es una gran ayuda para reducir los tiempos de de recuperacion MTTR (Mean Time To Recover).
La utilidad viene incluida en el RMAN, por ello para que su funcionamiento sea optimo se debe tener aplicado una politica de respaldo con RMAN, en caso de no tener no nos servirá de mucho del DRA.
Componentes mas importantes del DRA
A continuación las opciones mas importantes del DRA
ADVISE FAILURE
El comando ADVISE FAILURE, como su nombre lo indica, proporciona consejos de reparación para fallas enumeradas por el comando LIST FAILURE, así como el cierre de todas las fallas abiertas que ya están reparada
REPAIR FAILURE
El comando REPAIR FAILURE aplica los scripts de reparación producidos por el comando ADVISE FAILURE. El uso de la opción PREVIEW enumera los contenidos del script de reparación sin aplicarlo.
CHANGE FAILURE
El comando CHANGE FAILURE le permite cambiar la prioridad de una falla o cerrar una falla abierta. Es posible que desee cambiar la prioridad de una falla si no representa un problema para usted. Por ejemplo, una falla asociada con un espacio de tabla que usted conoce por más tiempo puede aparecer como una prioridad alta, cuando en realidad no tiene ningún efecto en el funcionamiento normal de su sistema
VALIDATE
El comando VALIDAR inicia las comprobaciones de integridad de los datos, el registro físico y, opcionalmente, las corrupciones de bloques lógicas de los archivos de la base de datos y las copias de seguridad en la vista V$DATABASE_BLOCK_CORRUPTION y el Repositorio de diagnóstico automático como uno o más fallos.
EJEMPLO
Para este ejemplo vamos hacer una maldad a la base de datos, como? vamos a realizar un borrado de unos de los datafile del tablespace USER.
Para esto debemos
Generar un respaldo con el RMAN
Requisito que la base de datos este en modo archivelog.
Respaldo con el RMAN
Eliminar el datafile
Se tiene que bajar la instancia de base de datos para la eliminación del datafile
En mi caso tengo una base de datos ASM, por lo que tengo que eliminar el datafile en el almacenamiento ASM y esto lo realizare desde el ASMCMD.
Intentamos de iniciar la base de datos ORCL
Como vemos nos genero un error ORA-01110, que esta relacionado con el archivo que borramos. La base de datos no se pudo abrir.
Listar la falla
Aqui vamos a ver que nos disnostica como problema el DRA.
Presentar las recomendaciones
Vamos a ver las recomendaciones del DRA para la solución del problema, están pueden ser varias
Aplicar la solución
Antes de aplicar la solución podemos ver el script que se aplicara antes de aplicar la solución.
Database Recovery Advisor
Database Recovery Advisor (DRA) es un asistente para realizar recuperaciones en la base de datos de manera automática. Automáticamente diagnostica corrupción o perdida de archivos de base de datos en disco, el determina las opciones de recuperación y realiza la recuperación según la petición del usuario.
Esto es una gran ayuda para reducir los tiempos de de recuperacion MTTR (Mean Time To Recover).
La utilidad viene incluida en el RMAN, por ello para que su funcionamiento sea optimo se debe tener aplicado una politica de respaldo con RMAN, en caso de no tener no nos servirá de mucho del DRA.
Componentes mas importantes del DRA
- LIST FAILURE
- ADVISE FAILURE
- CHANGE FAILURE
- VALIDATE
A continuación las opciones mas importantes del DRA
LIST FAILURE
Desde el RMAN con esta opcion determinamos de una forma facil el fallo en la base de datos de categoría CRITICAL o HIGH.ADVISE FAILURE
El comando ADVISE FAILURE, como su nombre lo indica, proporciona consejos de reparación para fallas enumeradas por el comando LIST FAILURE, así como el cierre de todas las fallas abiertas que ya están reparada
REPAIR FAILURE
El comando REPAIR FAILURE aplica los scripts de reparación producidos por el comando ADVISE FAILURE. El uso de la opción PREVIEW enumera los contenidos del script de reparación sin aplicarlo.
CHANGE FAILURE
El comando CHANGE FAILURE le permite cambiar la prioridad de una falla o cerrar una falla abierta. Es posible que desee cambiar la prioridad de una falla si no representa un problema para usted. Por ejemplo, una falla asociada con un espacio de tabla que usted conoce por más tiempo puede aparecer como una prioridad alta, cuando en realidad no tiene ningún efecto en el funcionamiento normal de su sistema
VALIDATE
El comando VALIDAR inicia las comprobaciones de integridad de los datos, el registro físico y, opcionalmente, las corrupciones de bloques lógicas de los archivos de la base de datos y las copias de seguridad en la vista V$DATABASE_BLOCK_CORRUPTION y el Repositorio de diagnóstico automático como uno o más fallos.
EJEMPLO
Para este ejemplo vamos hacer una maldad a la base de datos, como? vamos a realizar un borrado de unos de los datafile del tablespace USER.
Para esto debemos
- Generar un respaldo con el RMAN
- Eliminar el datafile
- Listar la falla,
- Presentar las recomendaciones
- Aplicar la solución.
Generar un respaldo con el RMAN
Requisito que la base de datos este en modo archivelog.
Verificar el modo archivelog de la base.
|
oracle@srvdb01 ~]$ . oraenv
ORACLE_SID = [oracle] ? orcl The Oracle base has been set to /u01/app/oracle [oracle@srvdb01 ~]$ sqlplus / as sysdba SQL> select log_mode from v$database; LOG_MODE ------------ NOARCHIVELOG
//Si no esta en modo archivelog se lo configura
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 968884224 bytes
Fixed Size 2931424 bytes
Variable Size 352322848 bytes
Database Buffers 608174080 bytes
Redo Buffers 5455872 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
|
Respaldo con el RMAN
[oracle@srvdb01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on Wed May 2 09:50:11 2018 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1500358275) RMAN> backup database; Starting backup at 02-MAY-18 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00005 name=+FRA/ORCL/DATAFILE/example.269.972577567 input datafile file number=00001 name=+FRA/ORCL/DATAFILE/system.257.972577339 input datafile file number=00003 name=+FRA/ORCL/DATAFILE/sysaux.256.972577245 input datafile file number=00004 name=+FRA/ORCL/DATAFILE/undotbs1.259.972577407 input datafile file number=00006 name=+FRA/ORCL/DATAFILE/users.258.972577405 channel ORA_DISK_1: starting piece 1 at 02-MAY-18 channel ORA_DISK_1: finished piece 1 at 02-MAY-18 piece handle=+FRA/ORCL/BACKUPSET/2018_05_02/nnndf0_tag20180502t180015_0.274.975088819 tag=TAG20180502T180015 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:03:45 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 02-MAY-18 channel ORA_DISK_1: finished piece 1 at 02-MAY-18 piece handle=+FRA/ORCL/BACKUPSET/2018_05_02/ncsnf0_tag20180502t180015_0.275.975089045 tag=TAG20180502T180015 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 02-MAY-18
|
Se tiene que bajar la instancia de base de datos para la eliminación del datafile
Bajar la instancia ORCL.
|
[oracle@srvdb01 ~]$ . oraenv
ORACLE_SID = [orcl] ? orcl The Oracle base remains unchanged with value /u01/app/oracle [oracle@srvdb01 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu May 3 15:31:32 2018 Copyright (c) 1982, 2014, Oracle. All rights reserved. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. |
En mi caso tengo una base de datos ASM, por lo que tengo que eliminar el datafile en el almacenamiento ASM y esto lo realizare desde el ASMCMD.
Eliminar el datafile desde el ASMCMD.
|
[oracle@srvdb01 ~]$ . oraenv
ORACLE_SID = [oracle] ? +ASM The Oracle base has been set to /u01/app/oracle [oracle@srvdb01 ~]$ asmcmd ASMCMD> cd +FRA/ORCL/DATAFILE ASMCMD> ls EXAMPLE.269.972577567 SYSAUX.256.972577245 SYSTEM.257.972577339 UNDOTBS1.259.972577407 USERS.258.972577405 ASMCMD> rm USERS.258.972577405 |
Intentamos de iniciar la base de datos ORCL
Iniciamos la base de datos.
|
SQL> startup
ORACLE instance started.
Total System Global Area 968884224 bytes
Fixed Size 2931424 bytes
Variable Size 352322848 bytes
Database Buffers 608174080 bytes
Redo Buffers 5455872 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '+FRA/ORCL/DATAFILE/users.258.972577405'
|
Como vemos nos genero un error ORA-01110, que esta relacionado con el archivo que borramos. La base de datos no se pudo abrir.
Listar la falla
Aqui vamos a ver que nos disnostica como problema el DRA.
Listar la falla RMAN DRA.
|
RMAN> LIST FAILURE;
Database Role: PRIMARY List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------- 42 HIGH OPEN 03-MAY-18 One or more non-system datafiles are missing |
Vamos a ver las recomendaciones del DRA para la solución del problema, están pueden ser varias
Listar recomendaciones RMAN DRA.
|
RMAN> ADVISE FAILURE;
Database Role: PRIMARY List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ---------- -------- --------- ------------- ------- 42 HIGH OPEN 03-MAY-18 One or more non-system datafiles are missing analyzing automatic repair options; this may take some time allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=27 device type=DISK analyzing automatic repair options complete Mandatory Manual Actions ======================== no manual actions available Optional Manual Actions ======================= 1. If file +FRA/ORCL/DATAFILE/users.258.972577405 was unintentionally renamed or moved, restore it Automated Repair Options ======================== Option Repair Description ------ ------------------ 1 Restore and recover datafile 6 Strategy: The repair includes complete media recovery with no data loss Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1926445353.hm |
Aplicar la solución
Antes de aplicar la solución podemos ver el script que se aplicara antes de aplicar la solución.
Previsualización de la recomendacion REPAIR FAILURE PREVIEW.
|
RMAN> REPAIR FAILURE PREVIEW;
Strategy: The repair includes complete media recovery with no data loss Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1926445353.hm contents of repair script: # restore and recover datafile restore ( datafile 6 ); recover datafile 6; sql 'alter database datafile 6 online'; |
Ahora si, aplicamos la solución
Aplicamos la solucion.
|
RMAN> REPAIR FAILURE;
Strategy: The repair includes complete media recovery with no data loss Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1926445353.hm contents of repair script: # restore and recover datafile restore ( datafile 6 ); recover datafile 6; sql 'alter database datafile 6 online'; Do you really want to execute the above repair (enter YES or NO)? YES executing repair script Starting restore at 03-MAY-18 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00006 to +FRA/ORCL/DATAFILE/users.258.972577405 channel ORA_DISK_1: reading from backup piece +FRA/ORCL/BACKUPSET/2018_05_02/nnndf0_tag20180502t180015_0.274.975088819 channel ORA_DISK_1: piece handle=+FRA/ORCL/BACKUPSET/2018_05_02/nnndf0_tag20180502t180015_0.274.975088819 tag=TAG20180502T180015 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 Finished restore at 03-MAY-18 Starting recover at 03-MAY-18 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:03 Finished recover at 03-MAY-18 sql statement: alter database datafile 6 online repair failure complete Do you want to open the database (enter YES or NO)? yes database opened |
Listo, como se ve en las ultimas lineas el advisor finaliza la tarea y pregunta si se desea dejar abierta la base de datos con unos pocos pasos haciendo mas rápido el disgnostico del error como su solución.
Como ven la vida del DBA es mas facil!!,
victor te felicito por tu post sobre diagnostico de fallas, puede profundizar sobre reducir tiempo con problema diagnostico
ResponderEliminar