Inicio » Oracle » Backup/Restore » Recuperar un archivo redo log

Recuperar un archivo redo log

Una base de datos puede permanecer levantada siempre que tenga como mínimo un miembro de uno de los grupos de redo log disponible. El alert recogerá todas las pérdidas de cualquiera de los miembros de un grupo de redo log( ORA-00312, ORA-00313). La vista dinámica V$LOGFILE proporciona el status de cada miembro de los diferentes grupos de redo log. La columna status refleja estos posibles valores:

INVALID          El fichero está corrupto o invalido

STALE             El fichero es nuevo y nunca ha sido usado

DELETE           El fichero ya no se utiliza

<blank>          El fichero esta en uso y no está corrupto

 La pérdida de un logfile de redo puede ser regenerada. Existe el comando  ALTER DATABASE CLEAR LOGFILE GROUP # (donde # es el número del grupo con un miembro dañado), el borrará y recreará los miembros del grupo. Si la base de datos esta en modo ARCHIVELOG, el grupo de logfiles debe ser archivado antes de que Oracle permita la ejecución de este comando. Esto se debe a que este logfile no se archivará y por tanto no estará disponible la información para una recuperación. Existe una variación de este comando que borrar y recrea el logfile a pasar de que este no haya sido archivado, ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #,  esto implica que después de su ejecución es indispensable hacer un backup de la base datos ya que los backup previos no servirán.

Ya que no se puede hacer una copia de seguridad de los online redo log con RMAN, esta herramienta no se puede utilizar en la recuperación de estos ficheros, utilizaremos por tanto sqlplus o Databse Control.

El comando ALTER DATABASE CLEAR LOGFILE se utiliza para una recuperación en caliente y solo si el logfile está inactivo.

 EJEMPLO

SQL> connect / as sysdba;

SQL> select group#,status,member from v$logfile order by group#;
GROUP#      STATUS          MEMBER
----------  -------------   ------------------------------------
1           INVALID         /u02/ORADATA/prueba/REDO01.LOG
1                           /u02/ORADATA/prueba/REDO01B.LOG
2                           /u02/ORADATA/prueba/REDO02.LOG
2                           /u02/ORADATA/prueba/REDO02B.LOG
3                           /u02/ORADATA/prueba/REDO03.LOG
3                           /u02/ORADATA/prueba/REDO03B.LOG

SQL>ALTER SYSTEM ARCHIVE LOG GROUP 1;
SQL>ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> select group#,status,member from v$logfile order by group#;
GROUP#      STATUS          MEMBER
----------  -------------   ------------------------------------
1                           /u02/ORADATA/prueba/REDO01.LOG
1                           /u02/ORADATA/prueba/REDO01B.LOG
2                           /u02/ORADATA/prueba/REDO02.LOG
2                           /u02/ORADATA/prueba/REDO02B.LOG
3                           /u02/ORADATA/prueba/REDO03.LOG
3                           /u02/ORADATA/prueba/REDO03B.LOG

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s