Geplanter Switchover

Eine Oracle-Datenbank arbeitet in einer von zwei Rollen: Primär oder Standby. Data Guard hilft Ihnen, die Rolle einer Datenbank mit einem Switchover oder Failover zu ändern:

  • Ein Switchover ist eine Rollenumkehr zwischen der Primärdatenbank und einer ihrer Standbydatenbanken. Ein Switchover garantiert keinen Datenverlust und wird üblicherweise für die geplante Wartung des Primärsystems durchgeführt. Während eines Switchover übergibt die primäre Datenbank auf eine Standbyrolle und die Standbydatenbankübergänge auf die primäre Rolle.
  • Ein Failover wird ausgeführt, wenn die Primärdatenbank (alle Instanzen einer Oracle RAC-Primärdatenbank) ausfällt oder nicht erreichbar ist und eine der Standbydatenbanken zur Übernahme der Primärrolle übergegangen ist. Failover kann je nach zum Zeitpunkt des Failovers geltendem Schutzmodus Datenverlust verursachen oder nicht.

Primärdatenbank von On-Premises zu OCI wechseln

Wenn Sie eine geplante Aktivität wie Wartung haben, können Sie die Datenbank in Oracle Cloud Infrastructure (OCI) zur primären Datenbank mit Nulldatenverlust machen. Ein Switchover ist ein geplantes Ereignis, das in der On-Premise-Datenbank initiiert und auf der Datenbankinstanz in der Cloud abgeschlossen wird.

  1. Melden Sie sich bei einer DGMGRL-Session in der On-Premise-Datenbank mit einem sys-Benutzernamen und -Kennwort an.
    DGMRGL> connect
  2. Prüfen Sie in der On-Premise-Datenbank, ob die Standby-Datenbank für Switchover und Failover bereit ist.
    In diesem Beispiel ist die Primärdatenbank db1 und die Standbydatenbank (StandbyDatabaseOCIInstance) DB1_phx3g7.
    DGMGRL> validate database DB1_phx3g7
    Die Ausgabe sieht wie folgt aus:
    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. Validieren Sie die primäre Datenbank.
    DGMGRL> validate database 'DB1';
    Die Ausgabe sieht wie folgt aus:
    Database Role:    Primary database
      Ready for Switchover:  Yes
      Managed by Clusterware:
        db1:  YES    
  4. Validiert die Standby-Datenbank.
    DGMGRL> validate database 'DB1_phx3g7';
    Die Ausgabe sieht wie folgt aus:
    
    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. Führen Sie in der On-Premise-Datenbank (Primärdatenbank) den Befehl aus, um zur Standbydatenbank zu wechseln.
    DGMGRL> switchover to db1_phx3g7;
    Die Ausgabe sieht wie folgt aus:
    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. Zeigen Sie in der On-Premise-Datenbank den Konfigurationsstatus an.
    DGMGRL> show configuration
    Die Ausgabe sieht wie folgt aus:
    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. Wählen Sie im primären On-Premise-Oracle Exadata Database Machine den geöffneten Modus aus.
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    MOUNTED
  8. Bestätigen Sie in der Oracle Database Exadata Cloud Service-Datenbank in der Cloud, dass die Datenbank READ WRITE ist.
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    READ WRITE
Die Datenbank in Oracle Database Exadata Cloud Service in der Cloud ist die primäre Datenbank.

Primärdatenbank von OCI zu On-Premises zurückschalten

Nachdem Sie die Datenbankinstanz in Oracle Cloud Infrastructure (OCI) zur primären Datenbank gemacht haben, verwenden Sie die Oracle Data Guard-Befehlszeilenschnittstelle (DGMGRL) auf der OCI-Datenbankinstanz inOracle Database Exadata Cloud Service, um zurückzuschalten und Ihre On-Premise-Datenbank erneut zur primären Datenbank zu machen.

  1. Wechseln Sie von der Datenbankinstanz in OCI zur On-Premise-Datenbank.
    DGMGRL> switchover to db1;
    Die Ausgabe sieht in etwa wie folgt aus:
    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. Melden Sie sich in Oracle Exadata Database Machine vor Ort an, und prüfen Sie die Konfiguration.
    DGMGRL> show configuration;
    Die Ausgabe sieht in etwa wie folgt aus:
    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. Erstellen Sie in der Oracle Database Exadata Cloud Service-Datenbank in der Cloud eine Testkatastrophen-Recovery-Tabelle.
    SQL> create table testdr (a number , b number);
    Table created.
    SQL> desc testdr;
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  4. Beenden Sie SQL.
    SQL> exit
  5. Melden Sie sich in der primären On-Premise-Oracle Exadata Database Machine als sysdba an, und zeigen Sie die Testdr-Tabelle an.
    $ sqlplus / as sysdba
    SQL> desc testdr;
    
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  6. Zeigen Sie in der primären On-Premise-Oracle Exadata Database Machine die Konfiguration an, und prüfen Sie sie.
    DGMGRL> show configuration;
    Die Ausgabe sieht in etwa wie folgt aus:
    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)

Sie können die Primärdatenbank zwischen der On-Premise-Datenbank und der Oracle Database Exadata Cloud Service -(OCI-)Datenbankinstanz hin und her wechseln.