Flashback Standby Database & Restore Points - Oracle Database 19c

Por Francisco Riccio
Publicado en Abril 2019





Introducción


Oracle Database 19c nos provee 2 funcionalidades importantes relacionadas a la recuperación de una base de datos mediante Flashback Database en un ambiente configurado con Standby Database. Las nuevas funcionalidades son las siguientes:

  • Ejecución automática de Flashback Standby Database cuando la base de datos Primaria ejecuta un Flashback Database.
  • Propagación automática de los Restore Points creados en la base de datos Primaria al Standby.

La primera funcionalidad, cuando una base de datos Primaria apertura con la opción de Resetlogs posterior a un Flashback Database, automáticamente su Standby Database ejecutará lo mismo, olvidándonos del procedimiento manual que debía ejecutarse en versiones previas a la 19c. Posterior a la operación de Flashback Database en la base de datos Standby, esta continuará replicando con el Primario.
La base de datos Standby ejecutará la operación de Flashback Standby Database cuando su proceso MRP detecte que la base de datos Primaria cuenta con una nueva encarnación como consecuencia de una operación de Flashback Database, posterior a ello inicia el recovery, todo este proceso de manera automática.
Antes de esta funcionalidad había que ejecutar un procedimiento que se encuentra documentado en My Oracle Support (MOS): 728374.1 (How To Flashback Primary Database In Standby Configuration).


La segunda funcionalidad permite replicar los Restore Points creados en la base de datos Primaria al Standby. Los Restore Points son almacenados en el Control File y al ser creados, el proceso MRP del Standby Database detecta la creación y lo ejecuta en la base de datos, mismo caso ocurre cuando son eliminados. La funcionalidad también incluye a los Restore Points Guarantee.




Implementación


El ambiente donde se probará las 2 funcionalidades cuenta con las siguientes direcciones IPs:

Rol de Base de Datos

IP

PRIMARIO

132.68.1.19

STANDBY

132.68.1.20




A. Flashback Standby Database Automático


Antes de iniciar con la comprobación de esta nueva funcionalidad se configurará ambas bases de datos con la opción de Flashback Database.


Base de Datos: Primaria


Base de Datos: Standby




Se procederá a crear un Restore Point llamado RP_TEST y posteriormente una tabla llamada TEST en la base de datos Primaria.


Base de Datos: Primaria


Base de Datos: Standby
Se puede validar que la información está siendo replicada.




Se procederá a ejecutar un Flashback Database en la base de datos Primaria:


Base de Datos: Primaria




Ahora se puede observar que el proceso MRP en el Standby Database detectó el cambio de encarnación de la base de datos Primaria e inicia un Flashback Standby Database en el Standby.


Base de Datos: Standby




El Flashback Standby Database ejecutado de manera automática por la base de datos también es registrado en el alert.log de la instancia.


Base de Datos: Standby







B. Propagación automática de los Restore Points creados en la base de datos Primaria al Standby


Se debe recordar que los Restore Points (incluido los Guarantee) son almacenados en el Control File y por ende no son replicados a los Standby Databases; pero esta nueva funcionalidad permitirá replicarlos y así facilitar las opciones de recuperación en ambos lados.

Los Restore Points creados en la base de datos Standby cuentan con el sufijo _PRIMARY.

Las condiciones para que el Restore Points sea propagado en el Standby Database son:

  • Ambas base de datos con compatible 19.0.0 o superior.
  • La base de datos productiva debe estar en modo OPEN.
  • El nombre del Restore Point con el sufijo _PRIMARY no debe existir en el Standby, si esto ocurre, no será creado en dicha base de datos.

En el punto A se contaba con un Restore Point llamado RP_TEST, ahora se comprobará si este existe en el Standby de manera automática:


Base de Datos: Standby




Consultamos la base de datos primaria el cual debe contar con el mismo valor de SCN.






Conclusión


Esta nueva funcionalidad provista en Oracle Database 19c permite liberar errores humanos al ejecutar un procedimiento manual para mantener nuestro Standby Database sincronizado posterior a una recuperación de Flashback Database en la base de datos Primaria; además de asegurarse en todo momento que los Restore Points creados siempre estén propagados en las bases de datos Standby y así facilitar al Administrador de Base de Datos ejecutar un proceso de recuperación eficiente.




Francisco Riccio, actualmente se desempeña como Arquitecto de Soluciones en Oracle Perú y es instructor de cursos oficiales de certificación Oracle. Es un Oracle Certified Professional en productos de Oracle Application, Base de Datos, Cloud & Virtualización.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.