Search
Close this search box.

¿Archive log perdido? No reconstruya su Standby

Un problema recurrente con las bases de datos standby es la pérdida de uno o más archive logs aún no aplicados. La solución era usualmente el reconstruir la base de datos standby, lo cual si bien es relativamente fácil, puede consumir bastante tiempo. Esto fue lo que algunos sugirieron a un afligido DBA que pedía ayuda en el foro de Oracle Technet; afortunadamente, si estás usando Oracle 10gR2, la solución es mucho más simple y rápida, ¿suena bien? entonces vamos con el procedimiento.

1. Detener la sincronización de la base de datos standby

STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2. Obtener el SCN al cual se ha llegado en la base de datos standby
STDB> SELECT CURRENT_SCN FROM V$DATABASE;
3. Obtener un backup incremental de la base de datos primaria con RMAN, a partir del SCN obtenido en el paso previo
RMAN> BACKUP INCREMENTAL FROM SCN <SCN from previous step>
DATABASE FORMAT '/tmp/ForStandby_%U' tag 'FORSTANDBY';

4. Catalogar el backup del paso previo en la base de datos standby

RMAN> CATALOG START WITH '/tmp/ForStandby';

5. Recuperar la base de datos standby con el backup ya catalogado

RMAN> RECOVER DATABASE NOREDO;

6. En la base de datos primaria crear un nuevo standby controlfile

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/tmp/ForStandbyCTRL.bck';
7. Detener la base de datos standby y levantarla con nomount
RMAN> SHUTDOWN;
RMAN> STARTUP NOMOUNT;

8. Restaurar el standby controlfile obtenido en el paso (6) en la base de datos standby

RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';
9. Detener la base de datos standby y luego levantarla con mount
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;

10. Limpiar los standby redo logs en la base de datos standby

STDB> ALTER DATABASE CLEAR LOGFILE GROUP 1;
STDB> ALTER DATABASE CLEAR LOGFILE GROUP 2;
STDB> ALTER DATABASE CLEAR LOGFILE GROUP 3;
11. Si estaba activo Flashback Database, reiniciarlo
STDB> ALTER DATABASE FLASHBACK OFF;
STDB> ALTER DATABASE FLASHBACK ON;

12. Reiniciar el recovery de la base de datos standby

STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Este procedimiento aplica no sólo cuando un archive log se ha perdido, sino también cuando se han realizado operaciones con nologging en la base de datos principal o cuando hay un gran retraso en la sincronización. Puedes revisar el texto completo en el manual Oracle Data Guard Concepts and Administration.
¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o ¡contáctame ahora mismo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Posts Relacionados

Aprenda a identificar la fila involucrada en la ocurrencia del evento de espera "enq: TX - row lock contention"
Aprenda a resolver el error CRS-2304 GPnP profile signature verification failed al iniciar una base de datos 11.2 en un cluster 19c.
Aprenda a corregir los permisos dañados de un Oracle Home, ya sea de Oracle Grid o de Oracle Database Server

¿Necesitas Ayuda?

Completa estos datos y estaré en contacto a la brevedad.