Conmutación planificada

Una base de datos Oracle funciona en uno de los dos roles: primario o en espera. Data Guard le ayuda a cambiar el rol de una base de datos mediante un switchover o un failover:

  • Un switchover es una inversión de rol entre la base de datos primaria y una de sus bases de datos en espera. Un switchover no garantiza ninguna pérdida de datos y normalmente se realiza para el mantenimiento planificado del sistema primario. Durante una conmutación, la base de datos primaria pasa a un rol en espera y la base de datos en espera pasa al rol principal.
  • Se realiza un failover cuando la base de datos primaria (todas las instancias de una base de datos primaria de Oracle RAC) falla o se ha vuelto inaccesible y una de las bases de datos en espera está en transición para asumir el rol principal. El failover puede o no resultar en pérdida de datos dependiendo del modo de protección vigente en el momento del failover.

Cambiar la base de datos primaria de locales a OCI

Cuando tiene una actividad planificada, como 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 base de datos en la nube.

  1. Conéctese a una sesión DGMGRL en la base de datos local con un nombre de usuario y una 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 db1 y la base de datos en espera (StandbyDatabaseOCIInstance) es DB1_phx3g7.
    DGMGRL> validate database DB1_phx3g7
    La salida se verá similar a la siguiente:
    Database Role:     Physical standby database
      Primary Database:  db1
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        db1       :  YES             
        db1_phx3g7:  YES   
              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        17 minutes 6 seconds (computed 42 seconds ago)
        Apply Delay:      0 minutes
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1)                   (db1_phx3g7)                         
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  3. Valide la base de datos primaria.
    DGMGRL> validate database 'DB1';
    La salida se verá similar a la siguiente:
    Database Role:    Primary database
      Ready for Switchover:  Yes
      Managed by Clusterware:
        db1:  YES    
  4. Valide la base de datos en espera.
    DGMGRL> validate database 'DB1_phx3g7';
    La salida se verá similar a la siguiente:
    
    Database Role:     Physical standby database  
    Primary Database:  db1  
    Ready for Switchover:  Yes  
    Ready for Failover:    Yes (Primary Running)  
    Managed by Clusterware:
        db1       :  YES                
        db1_phx3g7:  YES              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        32 minutes 12 seconds (computed 40 seconds ago)
        Apply Delay:      0 minutes  
    Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
                  (db1)                   (db1_phx3g7)
         1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs     
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
    
    Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  5. En la base de datos local (primaria), ejecute el comando para cambiar a la base de datos en espera.
    DGMGRL> switchover to db1_phx3g7;
    La salida se verá similar a la siguiente:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1_phx3g7"
    Connecting ...
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    New primary database "db1_phx3g7" is opening...
    Oracle Clusterware is restarting database "db1" ...
    Connected to "db1"
    Connected to "db1"
    Switchover succeeded, new primary is "db1_phx3g7"
  6. En la base de datos local, muestre el estado de configuración.
    DGMGRL> show configuration
    La salida se verá similar a la siguiente:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
          db1        - Physical standby database 
    
    Warning: ORA-16809: multiple warnings detected for the memberFast-Start
            Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 35 seconds ago)
  7. En el Oracle Exadata Database Machine local principal, seleccione el modo abierto.
    SQL> select open_mode from v$database;
    La salida se verá similar a la siguiente:
    OPEN_MODE
    -------------------- 
    MOUNTED
  8. En la base de datos Oracle Database Exadata Cloud Service de la nube, confirme que la base de datos está READ WRITE.
    SQL> select open_mode from v$database;
    La salida se verá similar a la siguiente:
    OPEN_MODE
    -------------------- 
    READ WRITE
La base de datos en Oracle Database Exadata Cloud Service en la nube es la base de datos primaria.

Cambiar la base de datos primaria de nuevo de OCI a local

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 de Oracle Data Guard (DGMGRL) en la instancia de base de datos de OCI enOracle Database Exadata Cloud Service para volver a cambiar la base de datos local y volver a convertirla en la base de datos primaria.

  1. Cambio de la instancia de base de datos en OCI a la base de datos local.
    DGMGRL> switchover to db1;
    El resultado es similar al siguiente:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1"
    New primary database "db1" is opening...
    Oracle Clusterware is restarting database "db1_phx3g7" ...
    Connected to "DB1_phx3g7"
    Connected to "DB1_phx3g7"
    Switchover succeeded, new primary is "db1"
  2. En Oracle Exadata Database Machine local, conéctese y revise la configuración.
    DGMGRL> show configuration;
    El resultado es similar al siguiente:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
      Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-12650: No common encryption or data integrity algorithm
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 899 seconds ago)
  3. En la base de datos Oracle Database Exadata Cloud Service de la nube, cree una tabla de recuperación ante desastres de prueba.
    SQL> create table testdr (a number , b number);
    Table created.
    SQL> desc testdr;
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  4. Salir de SQL.
    SQL> exit
  5. En el Oracle Exadata Database Machine local principal, inicie sesión como sysdba y vea la tabla testdr.
    $ sqlplus / as sysdba
    SQL> desc testdr;
    
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  6. En el Oracle Exadata Database Machine local principal, muestre y revise la configuración.
    DGMGRL> show configuration;
    El resultado es similar al siguiente:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
    db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 36 seconds ago)

Puede cambiar la base de datos primaria de ida y vuelta entre la base de datos local y la instancia de base de datos Oracle Database Exadata Cloud Service (OCI).