Validar preparación de DR

Revise las mejores prácticas para la preparación para la recuperación ante desastres y verifique la configuración de la recuperación ante desastres para eventos planificados y no planificados.

Acerca de la preparación de DR

Revise las mejores prácticas para la preparación para la recuperación ante desastres.

Utilice Active Data Guard para descargar la carga de trabajo de sólo lectura en la base de datos en espera para proporcionar una validación continua a nivel de aplicación de que la base de datos en espera está lista para la producción. Esto proporciona un nivel de seguridad además de la validación continua del nivel de bloque de Oracle realizada por los procesos de aplicación de Oracle Data Guard.

Utilice una base de datos en espera de instantáneas para crear una réplica exacta de una base de datos de producción con fines de desarrollo y prueba. Coloque periódicamente la base de datos en espera en modo de lectura/escritura (utilizando Data Guard Snapshot Standby) para validar su disposición a admitir cargas de trabajo de producción de lectura/escritura. También se puede utilizar una instantánea en espera para un nivel final de pruebas funcionales y de rendimiento de parches y actualizaciones, ya que el tamaño del sistema DR es similar al del sistema de producción. Una instantánea en espera continúa recibiendo redo de la base de datos primaria donde se archiva para su uso posterior, que proporciona protección de datos en todo momento. Sin embargo, el tiempo de recuperación (RTO) se ampliará en la cantidad de tiempo necesario para convertir la instantánea en espera de nuevo a la base de datos en espera si se necesita un failover mientras se realiza la prueba. Se necesita almacenamiento adicional para el área de recuperación rápida cuando hay un modo de instantánea en espera (para retener el redo archivado recibido de la base de datos de producción primaria para su uso posterior y los redo y flashback actuales generados por la instantánea en espera).

A continuación se muestran algunas de las ventajas de utilizar una base de datos en espera de instantáneas:

  • Proporciona una réplica exacta de una base de datos de producción para su desarrollo y pruebas, manteniendo al mismo tiempo la protección de datos en todo momento. Puede utilizar la opción Oracle Real Application Testing para capturar la carga de trabajo de la base de datos primaria y, a continuación, reproducirla con fines de prueba en la instantánea en espera.
  • Se refresca fácilmente para contener datos de producción actuales mediante la conversión a una base de datos física en espera y la resincronización.

Convertir la base de datos en espera en una instantánea en espera

Cuando desee una réplica exacta de una base de datos de producción, puede utilizar Oracle Data Guard Broker para convertir la base de datos física en espera en una base de datos en espera de instantáneas y validar el failover.

Una instantánea en espera es una base de datos en espera totalmente actualizable que se crea a partir de una base de datos física en espera. En las bases de datos en espera de instantáneas, se reciben los datos redo, pero no se aplican hasta que la base de datos en espera de instantáneas se convierta de nuevo en una base de datos física en espera.

La interfaz de línea de comandos de Oracle Data Guard (DGMGRL) permite gestionar una configuración de Oracle Data Guard Broker y sus diversos miembros directamente desde la interfaz de línea de comandos.

  1. Inicie sesión en DGMGRL en la instancia de base de datos en espera con el nombre de usuario y la contraseña sys.
    DGMRGL> connect
    Username: sys
    Password:
    La salida será similar a la siguiente:
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  2. Convierta la base de datos física en espera en una base de datos en espera de instantáneas.
    DGMGRL> convert database standby_database_unique_name (standbyDB) to snapshot standby;
    Una vez finalizada la conversión, la salida tendrá una línea similar a la siguiente:
    Converting database "standby_database_unique_name" to a Snapshot Standby database, please wait...
    Database "standby_database_unique_name" converted successfully
  3. Ver la configuración para verificar la conversión.
    DGMGRL> show configuration;
    La salida será similar a la siguiente:
    Configuration - onpremdr
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 26 seconds ago)
  4. Convierta la instantánea en espera de nuevo en una base de datos física en espera.
    DGMGRL> convert database standby_database_unique_name to physical standby;
    La salida será similar a la siguiente:
    Converting database "orclcdb" to a Physical Standby database, please wait...
    Operation requires a connection to database "orclcdb_iad1s3"
    Connecting ...
    Connected to "ORCLCDB_IAD1S3"
    Connected as SYSDBA.
    Operation requires shut down of instance "ORCLCDB" on database "orclcdb"
    Shutting down instance "ORCLCDB"...
    Connected to "ORCLCDB"
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Connected to "ORCLCDB"
    Continuing to convert database "orclcdb" ...
    Database "orclcdb" converted successfully
  5. Ver la configuración para verificar la conversión.
    DGMGRL> show configuration;
    La salida será similar a la siguiente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
          Warning: ORA-16854: apply lag could not be determined
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING   (status updated 11 seconds ago)

Definir Parámetros de Oracle Data Guard

Antes de ejecutar un switchover, defina los parámetros Oracle Data Guard en las instancias de base de datos primaria y en espera.

  1. En la base de datos primaria local, compruebe el número de cambio del sistema (SCN).
    select standby_became_primary_scn from v$database;
    La salida será similar a la siguiente:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
                                  0
  2. Verifique que el flashback no esté activado en la base de datos primaria.
    select flashback_on from v$database;
    La salida será similar a la siguiente:
    FLASHBACK_ON
    ------------------
    NO
  3. En la instancia local, cree un directorio de recuperación con el mismo nombre de base de datos primaria que el usuario de Oracle.
    En este ejemplo, ORCLCDB es el nombre de la base de datos local.
    [oracle@bastion dbhome_1]$ cd /opt/oracle/
    [oracle@bastion oracle]$ mkdir recovery
    [oracle@bastion oracle]$ cd recovery/
    [oracle@bastion recovery]$ mkdir ORCLCDB
    [oracle@bastion oracle]$ cd ORCLCDB /
    Confirme la ruta completa.
    $ pwd
    /opt/oracle/recovery/ORCLCDB
  4. Defina el tamaño del parámetro DB_RECOVERY_FILE_DEST_SIZE para cumplir el tamaño de la base de datos.
    El siguiente ejemplo utiliza 20G como tamaño de datos de muestra. Defina el tamaño de los datos en función de la base de datos.
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
    System altered
  5. Defina el destino del archivo de recuperación de la base de datos en el directorio creado anteriormente.
    SQL> alter system set db_recovery_file_dest = '/opt/oracle/recovery/on_premises_SID';
    System altered
  6. Activar flashback en la base de datos primaria.
    SQL> alter database flashback on;
    Database altered
  7. Confirme que el flashback de la base de datos está activado (on).
    SQL> select flashback_on from v$database;
    La salida será similar a la siguiente:
    FLASHBACK_ON
    ------------------
    YES
  8. Determine si el flashback está activado en la base de datos en espera de OCI en la nube.
    SQL> select flashback_on from v$database;
    La salida será similar a la siguiente:
    FLASHBACK_ON
    ------------------
    NO
  9. Consulte el estado del modo abierto de la base de datos en espera en la nube.
    SQL> select open_mode from v$database;
    La salida será similar a la siguiente:
    OPEN_MODE
    -------------------- 
    MOUNTED
  10. Defina el flashback en la instancia de base de datos en la nube.
    SQL> alter database recover managed standby database cancel;
    Database altered
  11. Consulte el estado del modo abierto de la base de datos en espera en la nube.
    SQL> select open_mode from v$database;
    La salida será similar a la siguiente:
    OPEN_MODE
    -------------------- 
    MOUNTED
  12. Active el flashback para la base de datos en espera.
    SQL> alter database flashback on;
    Database altered
  13. Desconecte la sesión en espera.
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  14. Confirme que el flashback de la base de datos está activado (on).
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  15. Mostrar los parámetros de retención.
    SQL> show parameter_retention;
    La salida será similar a la siguiente:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900

Cambiar la Base de Datos Primaria de On-Premises a OCI

Cuando tiene una actividad planificada, como el mantenimiento, puede convertir la base de datos en Oracle Cloud Infrastructure (OCI) en la base de datos primaria con cero pérdida de datos. Un switchover es un evento planificado que se inicia en la base de datos local y se completa en la instancia de la base de datos en la nube.

  1. Inicie sesión en DGMGRL en la base de datos local con un nombre de usuario y contraseña sys.
    DGMRGL> connect
  2. En la base de datos local, valide que la base de datos en espera esté lista para el switchover y el failover.
    En este ejemplo, la base de datos primaria es orclcdb y la base de datos en espera es orclcdb_iadls3.
    DGMGRL> validate database orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    La salida será similar a la siguiente:
    Database Role:     Physical standby database
      Primary Database:  orclcdb
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb       :  NO             
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb...
        The static connect identifier allows for a connection to database "orclcdb".
    
      Log Files Cleared:
        orclcdb Standby Redo Log Files:         Cleared
        orclcdb_iad1s3 Online Redo Log Files:   Not Cleared
        orclcdb_iad1s3 Standby Redo Log Files:  Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on orclcdb
  3. En la base de datos local (primaria), ejecute el comando para cambiar a la base de datos en espera.
    DGMGRL> switchover to orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    La salida será similar a la siguiente:
    Performing switchover NOW, please wait...
    New primary database "orclcdb_iad1s3" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB"
    Switchover succeeded, new primary is "orclcdb_iad1s3"
  4. En la base de datos local, muestre el estado de configuración.
    DGMGRL> show configuration
    La salida será similar a la siguiente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
      orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 70 seconds ago)
  5. En la base de datos en la nube, determine el estado del modo abierto.
    SQL> select open_mode from v$database;
    La salida será similar a la siguiente:
    OPEN_MODE
    -------------------- 
    READ WRITE
  6. En la base de datos local, determine el estado del modo abierto.
    SQL> select open_mode from v$database;
    La salida será similar a la siguiente:
    OPEN_MODE
    -------------------- 
    READ ONLY WITH APPLY
La base de datos en espera en la nube es ahora la base de datos primaria.

Cambie la base de datos primaria de OCI a On-Premises

Después de convertir la instancia de base de datos en Oracle Cloud Infrastructure (OCI) en la base de datos primaria, utilice la interfaz de línea de comandos Oracle Data Guard (DGMGRL) en la instancia de base de datos OCI para volver a cambiar y volver a convertir la base de datos local en la base de datos primaria.

  1. Validar los roles de base de datos para la base de datos primaria en la nube.
    En este ejemplo, ORCLCDB es el nombre de la base de datos local y orclcdb_iad1s3 es el nombre de la instancia de base de datos en la nube.
    DGMGRL> validate database orclcdb;
    La salida puede parecer similar a la siguiente:
    Database Role: Physical standby database
      Primary Database: orclcdb_iad1s3
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
    Unable to connect to database using (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1539)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.example.com)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))
    ORA-12541: TNS:no listener
    
    Failed.
        Warning: Ensure primary database's StaticConnectIdentifier property
        is configured properly so that the primary database can be restarted
        by DGMGRL after switchover
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs

    Si obtiene el mensaje de advertencia del identificador de conexión estática, revise los parámetros de configuración, el nombre del servicio SID, la dirección IP del host o la dirección de puerto.

  2. Inicie sesión en DGMGRL con un nombre de usuario y contraseña sys.
    DGMRGL> connect
  3. Revise el identificador de conexión estática para la base de datos local.
    DGMGRL> show database orclcdb StaticConnectIdentifier
    Revise la salida para verificar que los parámetros StaticConnectIdentifier son exactos. Por ejemplo:
    DGMGRL> show database orclcdb StaticConnectIdentifier
      StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))'
  4. Revise el identificador de conexión estática para la instancia de base de datos en la nube.
    DGMGRL> show database orclcdb_iad1s3 StaticConnectIdentifier
      StaticConnectIdentifier = 
    '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.30.3)(PORT=1539)
    ))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.examplevcn.com) 
    INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))'
    Revise la salida para verificar que los parámetros StaticConnectIdentifier, como el número de puerto y el nombre de servicio, son correctos.
  5. Corrija los parámetros StaticConnectIdentifier, como el número de puerto y el nombre de servicio.
    Al editar las propiedades, debe utilizar la interfaz de línea de comandos de Oracle Data Guard (DGMGRL) sin ningún salto de línea. En este ejemplo, se corrige el número de puerto y el nombre de servicio de la instancia de base de datos en la nube (orclcdb_iad1s3).
    DGMGRL> edit database 'orclcdb_iad1s3' set property StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))';
    Property "staticconnectidentifier" updated
  6. Validar la instancia de base de datos en la nube.
    DGMGRL> validate database orclcdb_iad1s3;
    La salida será similar a la siguiente:
    Database Role:    Primary database
      Ready for Switchover:  Yes
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
  7. Validar la base de datos local.
    DGMGRL> validate database orclcdb;
    La salida será similar a la siguiente:
    Database Role:     Physical standby database
      Primary Database:  orclcdb_iad1s3
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
    
      Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        2 seconds (computed 7 seconds ago)
        Apply Delay:      0 minutes
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
  8. Visualice y revise la configuración.
    DGMGRL> show configuration;
    La salida será similar a la siguiente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 27 seconds ago)
  9. Cambie de la instancia de base de datos de OCI a la base de datos local.
    DGMGRL> switchover to orclcdb;
    La salida será similar a la siguiente:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "orclcdb"
    Connecting ...
    Connected to "ORCLCDB"
    Connected as SYSDBA.
    New primary database "orclcdb" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb_iad1s3"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB_iad1s3"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB_iad1s3"
    Switchover succeeded, new primary is "orclcdb"
    Después de montar la base de datos, puede recibir la siguiente advertencia:
    ORA-16000: database or pluggable database open for read-only access  
    
    Please complete the following steps to finish switchover:
           start up instance "ORCLCDB" of database "orclcdb" 

    Puede ignorar la advertencia y continuar con el siguiente paso.

  10. En espera, que ahora es la principal, conecte y revise la configuración.
    DGMGRL> show configuration;
    La salida será similar a la siguiente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb        - Primary database
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 86 seconds ago)
  11. En la instancia de base de datos primaria, ORCLCDB, verifique que el modo es read write.
    SQL> select database_role, open_mode from v$database;
    DATABASE_ROLE	 OPEN_MODE
    ---------------- --------------------
    PRIMARY 	   READ WRITE
  12. (Opcional) Puede utilizar el comando verbose para mostrar un volcado de pila completo, incluido el rol, el estado, la instancia, las propiedades y la ubicación del log de alertas y del log de Data Guard Broker.
    DGMGRL> show database verbose orclcdb

Puede cambiar la base de datos primaria de ida y vuelta entre la base de datos local y la instancia de la base de datos OCI.