ORACLE Standby database

in #database7 years ago (edited)

En simples palabras, una base de datos ORACLE colocada en modo standby, es una copia de la base de datos de producción “primary database” en modo archive, a la cual le son aplicados los archives redo logs que son generado desde producción, con la finalidad de mantener actualizada dicha copia.

Este tipo de configuración es muy útil para crear ambientes de contingencia, que garanticen alta disponibilidad y mínima perdida de datos. Por lo general la “standdy database” es colocada en un centro de datos alterno, y pueden ser colocadas mas de una copia de la base de datos de producción en modo “standby database”.

Esta opción de ORACLE esta disponible a partir de la versión 7.3, y es necesario que la base de datos de producción este configurada en modo archive. Las versiones de sistema operativo, RDBMS y patch asociados de la “standby database” deben coincidir con las versiones de producción; sin embargo la configuración de las bases de datos de producción y las "standby database" pueden diferir (archivo init.ora). La activación o habilitación para lectura/escritura como base de datos principal de una “standby database” es irreversible, es decir, una vez que una “standby database” es activada como base de datos de producción, esta base de datos no puede volver a ser una “standby database”


![]()


Pasos para crear una “Standby Database”:

En la base de datos de producción (debe estar en modo archive):

1.- Bajar base de datos de producción.
SHUTDOWN IMMEDIATE;
2.- Hacer copia de la base de datos de producción a la ubicación para la “standby database”.
3.- Subir la base de datos de producción y crear una copia de controlfile para la “standby database”.
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'stdbycf.ctl';
4.- Archivar el actual redolog online de la base de datos de producción.
ALTER SYSTEM ARCHIVE LOG CURRENT;
5.- Copiar los archives redo logs files y el controlfile a la ubicación para la “standby database”.

En la “standby database”

1.- Subir en modo NOMOUNT la “standby database”.
STARTUP NOMOUNT;
2.- Montar la base de datos en modo standby
ALTER DATABASE MOUNT STANDBY DATABASE;
3.- Aplicar archives redo logs generados a la base de datos standby
RECOVER STANDBY DATABASE;

Esta instrucción aplicará solo los archives redo logs existentes, para aplicar nuevos archives redo logs se debe repetir a instrucción.

Si deseamos que la base de datos quede en un ciclo infinito aplicando archives redo logs, el comando debe cambiar por RECOVER MANAGED STANDBY DATABASE; Para la detener la aplicación automática de archives redo logs debemos utilizar la siguiente instrucción : RECOVER MANAGED STANDBY DATABASE CANCEL.


Una “standby database” puede ser utilizada en modo READ ONLY, ayudando a reducir la carga generada por las consultas en la base de datos de producción.

Para colocar “Standby Database” en modo READ ONLY:


1.- Si se encuentra en modo aplicación de archives logs automáticos, debe ser detenido este proceso automático.
RECOVER MANAGED STANDBY DATABASE CANCEL;
2.- Abrir la base de datos en modo lectura.
ALTER DATABASE OPEN READ ONLY;

Esta base de datos colocada en modo READ ONLY, puede volver a colocarse en modo standby con los siguientes pasos:

1.- Bajamos la base de datos.
SHUTDOWN IMMEDIATE;
2.- Subimos en modo NOMOUNT.
STARTUP NOMOUNT;
3.- Montamos la base de datos en modo STADBY.
ALTER DATABASE MOUNT STANDBY DATABASE;
4.- Activamos la aplicación de archives automáticos o manual:
RECOVER MANAGED STANDBY DATABASE;
o
RECOVER STANDBY DATABASE;

Algunas configuraciones adicionales son necesarias para que los archives redo logs que se van generando en la base de datos de producción, sean copiados directamente a la ruta donde la standby database buscar estos archivo.

Las imágenes utilizadas en este post pertenecen a ORACLE Corporation .