Alternância Planejada

Um banco de dados Oracle opera em uma das duas atribuições: principal ou stand-by. O Data Guard ajuda você a alterar a atribuição de um banco de dados usando um switchover ou um failover:

  • Um switchover é uma reversão de atribuição entre o banco de dados principal e um de seus bancos de dados stand-by. Um switchover garante que não haja perda de dados e geralmente é feito para manutenção planejada do sistema principal. Durante um switchover, o banco de dados principal faz a transição para uma atribuição stand-by e o banco de dados stand-by faz a transição para a atribuição principal.
  • Um failover é feito quando o banco de dados principal (todas as instâncias de um banco de dados principal do Oracle RAC) falha ou se tornou inacessível e um dos bancos de dados stand-by é transferido para assumir a atribuição principal. O failover pode ou não resultar em perda de dados, dependendo do modo de proteção em vigor no momento do failover.

Alternar o Banco de Dados Principal do Local para o OCI

Quando você tiver uma atividade planejada, como manutenção, poderá tornar o banco de dados no Oracle Cloud Infrastructure (OCI) o banco de dados principal com perda de dados zero. Um switchover é um evento planejado iniciado no banco de dados local e concluído na instância do banco de dados na nuvem.

  1. Efetue log-in em uma sessão DGMGRL no banco de dados local com um nome de usuário e senha sys.
    DGMRGL> connect
  2. No banco de dados local, valide se o banco de dados stand-by está pronto para switchover e failover.
    Neste exemplo, o banco de dados principal é db1 e o banco de dados stand-by (StandbyDatabaseOCIInstance) é DB1_phx3g7.
    DGMGRL> validate database DB1_phx3g7
    A saída será semelhante à seguinte:
    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 o banco de dados principal.
    DGMGRL> validate database 'DB1';
    A saída será semelhante à seguinte:
    Database Role:    Primary database
      Ready for Switchover:  Yes
      Managed by Clusterware:
        db1:  YES    
  4. Valide o banco de dados stand-by.
    DGMGRL> validate database 'DB1_phx3g7';
    A saída será semelhante à seguinte:
    
    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. No banco de dados local (principal), execute o comando para alternar para o banco de dados stand-by.
    DGMGRL> switchover to db1_phx3g7;
    A saída será semelhante à seguinte:
    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. No banco de dados local, exiba o status da configuração.
    DGMGRL> show configuration
    A saída será semelhante à seguinte:
    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. No Oracle Exadata Database Machine local principal, selecione o modo aberto.
    SQL> select open_mode from v$database;
    A saída será semelhante à seguinte:
    OPEN_MODE
    -------------------- 
    MOUNTED
  8. No banco de dados Oracle Database Exadata Cloud Service na nuvem, confirme se o banco de dados é READ WRITE.
    SQL> select open_mode from v$database;
    A saída será semelhante à seguinte:
    OPEN_MODE
    -------------------- 
    READ WRITE
O banco de dados no Oracle Database Exadata Cloud Service na nuvem é o banco de dados principal.

Alternar o Banco de Dados Principal de Volta do OCI para o Local

Depois de tornar a instância do banco de dados no Oracle Cloud Infrastructure (OCI) o banco de dados principal, use a interface de linha de comando do Oracle Data Guard (DGMGRL) na instância do banco de dados OCI noOracle Database Exadata Cloud Service para fazer com que seu banco de dados local volte a ser seu banco de dados principal.

  1. Alternar da instância do banco de dados no OCI para o banco de dados local.
    DGMGRL> switchover to db1;
    A saída será semelhante à seguinte:
    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. No Oracle Exadata Database Machine local, conecte-se e revise a configuração.
    DGMGRL> show configuration;
    A saída será semelhante à seguinte:
    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. No banco de dados Oracle Database Exadata Cloud Service na nuvem, crie uma tabela de recuperação de desastres de teste.
    SQL> create table testdr (a number , b number);
    Table created.
    SQL> desc testdr;
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  4. Saia do SQL.
    SQL> exit
  5. No Oracle Exadata Database Machine local principal, efetue log-in como sysdba e exiba a tabela testdr.
    $ sqlplus / as sysdba
    SQL> desc testdr;
    
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  6. No Oracle Exadata Database Machine local principal, exiba e revise a configuração.
    DGMGRL> show configuration;
    A saída será semelhante à seguinte:
    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)

Você pode alternar o banco de dados principal para frente e para trás entre o banco de dados local e a instância do banco de dados do OCI (Oracle Database Exadata Cloud Service).