1. Documentación en Tahiti -> Oracle Database, 11g Release 2 (11.2) -> Masters Book List -> 5 Switchover and Failover Operations
2. Un Failover se distingue del Switchover, porque éste normalmente se produce cuando la primaria se vuelve indisponible y no hay posibilidad de restaurar el servicio en un tiempo razonable. En este objetivo no nos piden que realicemos un Failover, simplemente que dejemos configurar el sistema para que haga un Failover automático cuando se supere el límite de tiempo indicado.
Se puede realizar el Failover manualmente con SQL pero no lo vamos a realizar así.
# Nos conectamos con la utilidad DGMGRL en la primaria dgmgrl sys/*********** # Revisamos la configuración de los destinos de Failover de cada Target # Todavía no lo hemos configurado así que veremos una cadena vacía SHOW DATABASE 'OCM' FastStartFailoverTarget; SHOW DATABASE 'DG' FastStartFailoverTarget; # Configuramos los Targets destino de Failover para cada BD EDIT DATABASE 'OCM' SET PROPERTY FastStartFailoverTarget = 'DG'; EDIT DATABASE 'DG' SET PROPERTY FastStartFailoverTarget = 'OCM'; # Revisamos el cambio SHOW DATABASE 'OCM' FastStartFailoverTarget; SHOW DATABASE 'DG' FastStartFailoverTarget; # Comprobamos que tenemos activado la propiedad ASYNC para LogXptMode # El atributo "LogXptMode" indica como se transporta el Redo a la BD Standby # · El modo SYNC es para los modos "Maximum Protection" y "Maximum Availability" # · El modo ASYNC es para el mdo "Maximum Performance" SHOW DATABASE 'OCM' LogXptMode; SHOW DATABASE 'DG' LogXptMode; # Configuramos el umbral para el tiempo de conexión que provoca el Fast-start Failover # El atributo FastStartFailoverThreshold indica el el número de segundos que el Observer # tatra de reconectarse a la BD Primary antes de iniciar el Fasts-start Failover EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold=90; # Configuramos el límite superior máximo aceptable para el Lag de la BD Standby # El atributo FastStartFailoverLagLimit indica el límite aceptable en segundos por el cual # la BD Standby puede ir detrás, en termino de aplicación de Redo de la BD Primary EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit=60; # Si no hemos habilitad # Habilitamos Fast-start Failover # Nos dará un error ORA-16819 # Si nos da el error ORA-16651 es porque no hemos habilitado Flashback en la BD de OCM # ALTER DATABASE FLASHBACK ON; ENABLE FAST_START FAILOVER; # Mostramos la configuración # Veremos el error ORA-16819 ya que no hemos lanzado el Observer SHOW CONFIGURATION VERBOSE # Lanzamos el siguiente comando en DG1 para iniciar el Observer # Utilizamos otra sesión distinta ya que nos atrapa el control dgmgrl sys/************** start observer # Volvemos a mostrar la configuración para comprobar que Fail-start Failover está ENABLED SHOW CONFIGURATION VERBOSE # También podemos comprobarlo así SHOW FAST_START FAILOVER
3. La siguiente práctica consiste en probar el Failover.
# Forzamos un SHUTDOWN ABORT en la instancia OCM # A los 90 segundos veremos en la ventana del Observer el comienzo del Fast-start failover # Al cabo de unos minutos tendremos el mensaje "Failover succeeded, new primary is 'DG'" SHUTDOWN ABORT # Revisamos el estado de las 2 BBDD # La BD de OCM tiene que ser reincorporada o reestablecidad (Reinstate) SHOW DATABASE 'DG'; SHOW DATABASE 'OCM'; -- Reestablecemos el estado de OCM en el Broker -- Primero debemos monstar la instancia OCM STARTUP MOUNT # Ejecutamos con la utilidad DGMGRL el siguiente comando # Nos puede salir el mensaje de que está en progreso REINSTATE DATABASE 'OCM'; # Por último hacer un Switchover de nuevo a la primaria para dejarlo en el estado original SWITCHOVER TO 'OCM'; # Comprobamos la configuración para comprobar que todo es correcto # OCM debe ser "Primary database" # DG debe ser "Physical standby database" SHOW CONFIGURATION;