martes, 21 de mayo de 2013

Far Sync Standby Database en Oracle Database 12c

Introducción

Oracle Database 12c nos provee un nuevo tipo de rol de Standby database llamado Far Sync, el cual viene en reemplazo a las configuraciones de Standby Database en cascada que en previas versiones uno configuraba y que mantenía ciertas dificultades.

Far Sync Standby Database nos permite mantener la siguiente configuración.


Figura 1

Donde una base de datos replica su información con respecto a diferentes standby database (physical y logical) mediante un coordinador. 

Far Sync Standby Database que actúa como coordinador en esta configuración tiene como característica que solo se compone de su parameter file, control file, standby redo logs y archives, carece de data files, esto permite que pueda ser alojado en un servidor con poco espacio de storage y menos procesamiento. Al no contar con data files no puede ser abierto en modo lectura ni tampoco participar como un Active Data Guard.


Otras características que tiene este nuevo rol de Standby Database son las siguientes:

  • No ejecuta operaciones de RECOVER al no contar con datafiles.
  • Soporta Máxima Performance y Máxima Disponibilidad.
  • Cuenta con las opciones de transporte en ASYNC y compresión de redo.  
  • Tiene la capacidad de coordinar con la base de datos Primaria para descubrir  y resolver archives logs requeridos para su sincronización y también los archives que requieren los Standby Database destinos.
  • Si Far Sync Standby Database tiene problemas de espacio por los archives que recibe entonces envía una notificación a la base de datos primaria en pro de que este deje de enviar hasta que se solucione el incidente por espacio.

A continuación se realizará la implementación de una solución con Far Sync Standby Database.


Implementación

La implementación que se desarrollará tendrá una base de datos primaria, un Far Sync Standby Database y una base de datos destino que será un Physical Standby Database. Toda nuestra solución será desplegada en servidores Windows Server 2008 R2.

Inventario

Servidor
Rol
Servicio de BD
DB_UNIQUE_NAME
172.68.1.21
Primario
PROD
PROD
172.68.1.22
Far Sync Standby Database
PROD2
PROD2
172.68.1.23
Physical Standby Database
PROD3
PROD3

Paso 1

En el servidor donde se alojará el Far Sync Standby Database crearemos su servicio de Windows y su instancia respectiva.












Paso 2

Creamos su control file que será de tipo Far Sync Standby Database.
Este paso es ejecutado en el servidor Primario.










El control file generado debe ser copiado al servidor que tiene el rol Far Sync Standby Database en la ubicación que indique el parámetro CONTROL_FILES de su instancia, ejemplo:

En la instancia del Far Sync Standby Database el parámetro CONTROL_FILES tiene el siguiente valor: *.control_files='C:\oracle\oradata\PROD\control01.ctl'

Por lo cual el control file de tipo Far Sync Standby Database que fue generado en el primario debe ser copiado en dicha ubicación.

Paso 3

Montamos la base de datos de tipo Far Sync Standby Database y validamos su rol.



Paso 4

Al Far Sync Standby Database creamos sus Grupos de Standby Redo Logs.

Como recomendación la cantidad de Grupos de Standby redo logs que debe crearse debe ser basado en la siguiente fórmula.

Cantidad de Grupo de Standby Redo Log = Cantidad de Grupos de Redo Log de la BD Primaria + 1











Paso 5

Configuración de parámetros relacionados a la implementación de Far Sync Standby Database.

En la base de datos Primaria:

Parámetro
Valor
*.db_recovery_file_dest
C:\app\oracle\fast_recovery_area
*.fal_server
PROD2
*.log_archive_config
DG_CONFIG=(PROD,PROD2,PROD3)
*.log_archive_dest_1
LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD
*.log_archive_dest_2
El valor de PROD2 es una entrada en el archivo tnsnames.ora del servidor que permite la conectividad hacia la base de datos de rol Far Sync Standby Database.
SERVICE=PROD2 SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PROD2

En la base de datos con Rol Far Sync Standby Database:

Parámetro
Valor
*.db_recovery_file_dest
C:\oracle\fast_recovery_area
*.db_unique_name
PROD2
*.log_archive_config
DG_CONFIG=(PROD,PROD2,PROD3)
*.fal_server
PROD
*.log_archive_dest_1
LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD2
*.log_archive_dest_2
El valor de PROD3 es una entrada en el archivo tnsnames.ora del servidor que permite la conectividad hacia la base de datos de rol Physical Standby Database.
Este parámetro permite que el Far Sync Standby Database envié sus archives e información de redo a la base de datos Physical Standby Database.
SERVICE=PROD3 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=PROD3'

Paso 6

Validamos en el servidor Far Sync Standby Database que comienzan a llegar los archives proveniente de la base de datos Primaria.




Asimismo validamos en el servidor Primario que ambos servidores (Primario y Far Sync Standby Database) estén sincronizados.








Hasta este punto tenemos la base de datos Primaria replicando con el Far Sync Standby Database.

Los pasos que siguen a continuación son típicos para implementar un Physical Standby Database.

Paso 7

En el servidor que alojará el Physical Standby Database crearemos su servicio de Windows y su instancia similar como se realizó al Far Sync Standby Database.

Luego procedemos a configurar los siguientes parámetros en pro que el  Physical Standby Database reciba los archives e información de redo logs que provendrán del Far Sync Standby Database.

En la base de datos Physical Standby Database:

Parámetro
Valor
*.db_recovery_file_dest
C:\app\oracle\fast_recovery_area
*.db_unique_name
PROD3
*.log_archive_config
DG_CONFIG=(PROD,PROD2,PROD3)
*.fal_server
PROD2
*.log_archive_dest_1
LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD3
*.log_archive_dest_2
El valor de PROD2 es una entrada en el archivo tnsnames.ora del servidor que permite la conectividad hacia la base de datos de rol Far Sync Standby Database.
SERVICE=PROD2 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=PROD2

Paso 8

Copiamos todos los datafiles que pertenecen a la base de datos Primaria y la copiamos en el servidor que alojará en el Physical Standby Database.

Luego en el servidor Primario crearemos  el control file que servirá para construir el Physical Standby Database.



Este control file luego debe ser copiado al servidor que aloja el Physical Standby Database similar como se realizó en la base de datos Far Sync Standby Database.

Paso 9

En el Physical Standby Database crearemos los grupos de standby redo logs.










Paso 10

Iniciamos la aplicación de archives e información de redo en el Physical Standby Database mediante el comando:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION USING CURRENT LOGFILE;


Conclusión

Concluimos que Oracle Database 12c nos trae una manera más sencilla y eficiente de armar soluciones de Standby Database en cascada mediante Far Start Sync Standby Database reemplazando el esquema tradicional que se venía trabajando en las versiones anteriores.


Publicado por Ing. Francisco Riccio. Es un IT Specialist en productos Oracle e instructor de cursos oficiales de certificación Oracle. Está reconocido por Oracle como un Oracle ACE y certificado en productos de Oracle Application & Base de Datos.

e-mail: francisco@friccio.com
web: www.friccio.com

No hay comentarios:

Publicar un comentario