jueves, 18 de noviembre de 2010

Cómo hacer un switchover con Oracle Dataguard

Las 336 páginas del manual de Oracle Dataguard para la versión 11gR2 ó las 386 páginas del mismo manual en la versión 10gR2, podría ser el primer acto de frustración, que podrías encontrar, a la hora de querer aprender a convertirnos en un experto en esta poderosa opción de base de datos, para la versión E.E.

Sin embargo, a pesar de la gran cantidad de conceptos que se deben manejar, para la instalación, configuración y administración de Oracle Dataguard, no es tan complejo en esencia, pero si, de mucho cuidado y atención.

Antes de realizar cualquier cambio de configuración o aplicar algún procedimiento, es necesario verificar, como lo apunte anteriormente, con todo el detenimiento necesario, el estado de operación de la configuración de nuestra instalación.

En el caso de requerir realizar un "Switchover", ó como lo diríamos en español, "un cambio en el rol de trabajo, asumido por nuestras bases de datos Oracle", en nuestra solución de contingencia, es importante tomar en cuenta, las siguientes recomendaciones.
  1. Tome su tiempo, para determinar sin grado de error, las direcciones IP y los nombres de los host, involucrados en su configuración.
  2. Determine, cuál servidor es el Primario y cuál el STANDBY.  Si estamos trabajando en ambiente Linux o Unix, y estamos haciendo acceso, utilizando una herramienta de SSH o Telnet como PUTTY por ejemplo, cambié el fondo de la terminal a un color, que le permita distinguir sin la más mínima duda, cuál servidor es cuál.
  3. Verifique que el servidor Primario, tiene activo el modo archive.
  4. Verifique que el servidor STANDBY, esta recibiendo los cambios realizados en el servidor PRIMARIO.
  5. Antes de proceder a realizar el cambio de rol, verique que cuente con un respaldo funcional de las bases de datos.  Si realiza, respaldos diariamente, a través de exports por ejemplo, verifique el log, para determinar que el respaldo terminó satisfactoriamente y verifique, que todas las piezas del respaldo, estan físicamente en el lugar donde deben estar.
  6. Una vez, verificado los puntos anteriores proceda con los siguientes pasos:

  7. En la base de datos PRIMARIA, verifique el estado de la base de datos de producción, en la columna switchover_status de la vista v$database.  El valor de esta columna puede variar, según las condiciones actuales de funcionamiento de la base de datos:
NOT ALLOWED - En este estado, la base de datos standby y la base de datos primaria, no pueden ser intercambiadas entre sí.
SESSIONS ACTIVE - Indica que existen sesiones activas en la base de datos.  Esto puede ser, tanto en la base de datos primaria, como standby.  Para poder continuar con el proceso, es necesario inicialmente desconectar a todas las sesiones, antes de realizar el cambio de rol.
SWITCHOVER PENDING -  La solicitud de intercambio ha sido recibida en la base de datos, pero aún no ha sido procesada.
SWITCHOVER LATENT - El switchover se encuentra en estado pendiente, pero no ha sido completado y la base de datos y las bases de datos, podrían ser devueltas a su estado original.
TO PRIMARY - Esta es una base de datos standby, sin sesiones activas y que permite ser promocionada como una base de datos primaria.
TO STANDBY - Esta es una base de datos primaria, sin sesiones activas y que podría ser promocionada como base de datos standby.
RECOVERY NEEDED - Esta es una base de datos standby, que no ha recibido una respuesta de intercambio de rol de trabajo.

El valor devuelto por la columna en la vista debe ser "TO STANDBY", para poder continuar con el proceso.
SQL>select switchover_status from v$database;

Nota: Si al realizar la consulta, el valor indica sesiones activas y al consultar la vista v$session, logras observar que el usuario DBSNMP y el SYSMAN están logeados, corresponden a las sesiones, que se crean producto de que se encuentre corriendo el "Database Console".  Detenga el servicio de DBC, con el comando emctl stop dbconsole, para poder continuar.

Si el valor obtenido es el indicado, podemos proceder a cambiar el rol de la base de datos primaria a standby, con la siguientes instrucciones:

SQL>alter database commit to switchover to physical standby with session shutdown;
SQL>shutdown immediate
SQL>startup nomount
SQL>alter database mount standby database;

En este punto, estamos desactivando, el envió del nivel transaccional a la base de datos remota standby.

SQL>alter system set log_archive_dest_state_2=defer;

En la base de datos STANDBY, una vez realizada las tareas anteriores, debemos verificar el estado de la instancia.  El valor de la columna "switchover_status", debe ser "TO PRIMARY", para poder continuar con la tarea.
SQL>select switchover_status from v$database;

Seguidamente, debemos promocionar la base de datos standby como base de datos primaria.

SQL>alter database commit to switchover to primary;
SQL>shutdown immediate
SQL>startup

Finalmente, para concluir, en la nueva base de datos STANDBY, debemos activar el modo automático de recuperación, para que empieze a aplicar el redo generado en la nueva base de datos PRIMARIA.
SQL>recover managed standby database disconnect

Finalmente, verifique que el redo generado esta siendo aplicado en la base de datos STANDBY, a través de la siguiente consulta:

SQL>select sequence#,applied from v$archived_log;


Ahora sí, ya hemos hecho el cambio de rol entre ambos servidores en nuestra configuración.

2 comentarios:

  1. Genial, logre hacer el switchover, pero al querer regresarlo nuevamente lo hice por el mismo procedimiento, todos los comando se ejecutan correctamente, el recover esta funcionando pero no replica los cambios

    ResponderEliminar

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar