DR-Bereitschaft validieren

Prüfen Sie Best Practices für Disaster Recovery-Bereitschaft, und prüfen Sie Ihr Disaster Recovery-Setup für geplante und nicht geplante Ereignisse.

Info zur DR-Bereitschaft

Überprüfen Sie Best Practices für Disaster Recovery (DR) Readiness.

Verwenden Sie Active Data Guard, um schreibgeschützte Workload in die Standbydatenbank abzuladen, um eine kontinuierliche Validierung auf Anwendungsebene bereitzustellen, dass die Standby-Datenbank für die Produktion bereit ist. Dies bietet zusätzlich zur kontinuierlichen Validierung auf Oracle-Blockebene, die von Oracle Data Guard-Anwendungsprozessen ausgeführt wird, eine Sicherheitsebene.

Verwenden Sie eine Snapshot-Standbydatenbank, um eine exakte Replikation einer Produktionsdatenbank für Entwicklungs- und Testzwecke zu erstellen. Setzen Sie die Standby in regelmäßigen Abständen in den Lese-/Schreibmodus (mit Data Guard-Snapshot-Standby), um die Bereitschaft zur Unterstützung von Lese-/Schreibproduktions-Workloads zu validieren. Eine Snapshot-Standby kann auch für eine endgültige Ebene von Funktions- und Performancetests von Patches und Upgrades verwendet werden, da die DR-Systemgröße dem Produktionssystem ähnlich ist. Eine Snapshot-Standby empfängt weiterhin redo von der Primärdatenbank, in der sie für eine spätere Verwendung archiviert ist, was jederzeit Datenschutz bietet. Die Recovery-Zeit (RTO) wird jedoch um die Zeit verlängert, die für die Konvertierung der Snapshot-Standby in die Standby-Datenbank erforderlich ist, wenn ein Failover während des Tests erforderlich ist. Für den Fast Recovery-Bereich ist ein zusätzlicher Speicher erforderlich, wenn sich eine Standby im Snapshot-Modus befindet (um archivierte Redo zu speichern, die von der Primärproduktionsdatenbank für die spätere Verwendung empfangen werden, und aktuelle Redo- und Flashback-Logs, die von der Snapshot-Standby generiert werden).

Im Folgenden sind einige der Vorteile der Verwendung einer Snapshot-Standby-Datenbank aufgeführt:

  • Es bietet eine exakte Replik einer Produktionsdatenbank für Entwicklung und Test unter Beibehaltung des Datenschutzes zu allen Zeiten. Mit der Oracle Real Application Testing-Option können Sie die primäre Datenbank-Workload erfassen und sie dann zu Testzwecken in der Snapshot-Standby wiedergeben.
  • Es wird leicht aktualisiert, um aktuelle Produktionsdaten zu enthalten, indem es in eine physische Standby-Datenbank konvertiert und neu synchronisiert wird.

Standbydatenbank in Snapshot-Standby konvertieren

Wenn Sie eine exakte Replikation einer Produktionsdatenbank wünschen, können Sie Oracle Data Guard Broker verwenden, um die physische Standby-Datenbank in eine Snapshot-Standby-Datenbank zu konvertieren und das Failover zu validieren.

Eine Snapshot-Standby ist eine vollständig aktualisierbare Standby-Datenbank, die aus einer physischen Standby-Datenbank erstellt wird. Bei Snapshot-Standby-Datenbanken werden die redo-Daten empfangen, jedoch erst angewendet, wenn die Snapshot-Standby-Datenbank wieder in eine physische Standby-Datenbank konvertiert wurde.

Mit der Oracle Data Guard-Befehlszeilenschnittstelle (DGMGRL) können Sie eine Oracle Data Guard Broker-Konfiguration und die verschiedenen Elemente direkt über die Befehlszeilenschnittstelle verwalten.

  1. Melden Sie sich bei einer DGMGRL-Session in der Standby-Datenbankinstanz mit dem Benutzernamen und Kennwort sys an.
    DGMRGL> connect
    Username: sys
    Password:
    Die Ausgabe sieht wie folgt aus:
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  2. Konvertieren Sie die physische Standby-Datenbank in eine Snapshot-Standbydatenbank.
    DGMGRL> convert database standby_database_unique_name (standbyDB) to snapshot standby;
    Wenn die Konvertierung abgeschlossen ist, hat die Ausgabe eine Zeile wie folgt:
    Converting database "standby_database_unique_name" to a Snapshot Standby database, please wait...
    Database "standby_database_unique_name" converted successfully
  3. Zeigen Sie die Konfiguration an, um die Konvertierung zu überprüfen.
    DGMGRL> show configuration;
    Die Ausgabe sieht wie folgt aus:
    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. Konvertieren Sie die Snapshot-Standby zurück in eine physische Standby-Datenbank.
    DGMGRL> convert database standby_database_unique_name to physical standby;
    Die Ausgabe sieht wie folgt aus:
    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. Zeigen Sie die Konfiguration an, um die Konvertierung zu überprüfen.
    DGMGRL> show configuration;
    Die Ausgabe sieht wie folgt aus:
    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)

Oracle Data Guard-Parameter festlegen

Legen Sie vor der Ausführung eines Switchovers die Oracle Data Guard-Parameter für die Primär- und Standby-Datenbankinstanzen fest.

  1. Prüfen Sie in der primären On-Premise-Datenbank die SCN (System Change Number).
    select standby_became_primary_scn from v$database;
    Die Ausgabe sieht wie folgt aus:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
                                  0
  2. Stellen Sie sicher, dass das Flashback nicht auf der Primärdatenbank aktiviert ist.
    select flashback_on from v$database;
    Die Ausgabe sieht wie folgt aus:
    FLASHBACK_ON
    ------------------
    NO
  3. Erstellen Sie in der On-Premise-Instanz ein Recovery-Verzeichnis mit demselben primären Datenbanknamen wie der Oracle-Benutzer.
    In diesem Beispiel ist ORCLCDB der Name der On-Premise-Datenbank.
    [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 /
    Bestätigen Sie den vollständigen Pfad.
    $ pwd
    /opt/oracle/recovery/ORCLCDB
  4. Legen Sie die Größe des DB_RECOVERY_FILE_DEST_SIZE-Parameters fest, um Ihre Datenbankgröße zu erfüllen.
    Im folgenden Beispiel wird 20G als Beispieldatengröße verwendet. Legen Sie die Datengröße basierend auf Ihrer Datenbank fest.
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
    System altered
  5. Definieren Sie das Datenbank-Recovery-Dateiziel in dem zuvor erstellten Verzeichnis.
    SQL> alter system set db_recovery_file_dest = '/opt/oracle/recovery/on_premises_SID';
    System altered
  6. Aktivieren Sie Flashback auf der Primärdatenbank.
    SQL> alter database flashback on;
    Database altered
  7. Stellen Sie sicher, dass das Flashback der Datenbank aktiviert ist (on).
    SQL> select flashback_on from v$database;
    Die Ausgabe sieht wie folgt aus:
    FLASHBACK_ON
    ------------------
    YES
  8. Bestimmen Sie, ob Flashback in der OCI-Standbydatenbank in der Cloud aktiviert ist.
    SQL> select flashback_on from v$database;
    Die Ausgabe sieht wie folgt aus:
    FLASHBACK_ON
    ------------------
    NO
  9. Fragen Sie den Status des geöffneten Modus für die Standby-Datenbank in der Cloud ab.
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    MOUNTED
  10. Legen Sie das Flashback auf der Datenbankinstanz in der Cloud fest.
    SQL> alter database recover managed standby database cancel;
    Database altered
  11. Fragen Sie den Status des geöffneten Modus für die Standby-Datenbank in der Cloud ab.
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    MOUNTED
  12. Flashback für die Standby-Datenbank aktivieren.
    SQL> alter database flashback on;
    Database altered
  13. Melden Sie die Standby-Datenbank von der Session ab.
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  14. Stellen Sie sicher, dass das Flashback der Datenbank aktiviert ist (on).
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  15. Zeigen Sie die Aufbewahrungsparameter an.
    SQL> show parameter_retention;
    Die Ausgabe sieht wie folgt aus:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900

Primärdatenbank von On-Premises in OCI umschalten

Wenn Sie über eine geplante Aktivität verfügen, wie z. B. Wartung, können Sie die Datenbank in Oracle Cloud Infrastructure (OCI) zur primären Datenbank ohne Datenverlust machen. Ein Switchover ist ein geplantes Ereignis, das in der On-Premise-Datenbank initiiert und in der Datenbankinstanz in der Cloud abgeschlossen wurde.

  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 bereit für Switchover und Failover ist.
    In diesem Beispiel ist die Primärdatenbank orclcdb und die Standbydatenbank orclcdb_iadls3.
    DGMGRL> validate database orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    Die Ausgabe sieht wie folgt aus:
    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. Führen Sie in der On-Premise-Datenbank (Primärdatenbank) den Befehl zum Switchover zur Standby-Datenbank aus.
    DGMGRL> switchover to orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    Die Ausgabe sieht wie folgt aus:
    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. Zeigen Sie in der On-Premise-Datenbank den Konfigurationsstatus an.
    DGMGRL> show configuration
    Die Ausgabe sieht wie folgt aus:
    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. Bestimmen Sie in der Datenbank in der Cloud den Status des Modus "Offen".
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    READ WRITE
  6. Bestimmen Sie in der On-Premise-Datenbank den Status des Open Mode.
    SQL> select open_mode from v$database;
    Die Ausgabe sieht wie folgt aus:
    OPEN_MODE
    -------------------- 
    READ ONLY WITH APPLY
Die Standbydatenbank in der Cloud ist jetzt die Primärdatenbank.

Primärdatenbank von OCI zurück in On-Premises wechseln

Nachdem Sie die Datenbankinstanz in Oracle Cloud Infrastructure (OCI) zur Primärdatenbank gemacht haben, wechseln Sie mit der Oracle Data Guard-Befehlszeilenschnittstelle (DGMGRL) auf der OCI-Datenbankinstanz zurück, und machen Sie Ihre On-Premise-Datenbank erneut zur Primärdatenbank.

  1. Validieren Sie die Datenbankrollen für die primäre Datenbank in der Cloud.
    In diesem Beispiel ist ORCLCDB der Name der On-Premise-Datenbank und orclcdb_iad1s3 der Name der Datenbankinstanz in der Cloud.
    DGMGRL> validate database orclcdb;
    Die Ausgabe kann wie folgt aussehen:
    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

    Wenn Sie die Warnmeldung für die statische Verbindungs-ID erhalten, prüfen Sie die Konfigurationsparameter, den SID-Servicenamen, die Host-IP-Adresse oder die Portadresse.

  2. Melden Sie sich bei einer DGMGRL-Session mit einem Benutzernamen und Kennwort sys an.
    DGMRGL> connect
  3. Prüfen Sie die statische Connect-ID für die On-Premise-Datenbank.
    DGMGRL> show database orclcdb StaticConnectIdentifier
    Prüfen Sie die Ausgabe, um sicherzustellen, dass die StaticConnectIdentifier-Parameter korrekt sind. Siehe folgendes Beispiel:
    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. Prüfen Sie die statische Connect-ID für die Datenbankinstanz in der Cloud.
    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)))'
    Prüfen Sie die Ausgabe, um sicherzustellen, dass die StaticConnectIdentifier-Parameter, wie Portnummer und Servicename, korrekt sind.
  5. Korrigieren Sie alle StaticConnectIdentifier-Parameter, wie Portnummer und Servicename.
    Wenn Sie die Eigenschaften bearbeiten, müssen Sie die Befehlszeilenschnittstelle (DGMGRL) von Oracle Data Guard ohne Zeilenumbrüche verwenden. Dieses Beispiel korrigiert die Portnummer und den Servicenamen für die Datenbankinstanz in der Cloud (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. Validieren Sie die Datenbankinstanz in der Cloud.
    DGMGRL> validate database orclcdb_iad1s3;
    Die Ausgabe sieht wie folgt aus:
    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. Überprüfen Sie die On-Premise-Datenbank.
    DGMGRL> validate database orclcdb;
    Die Ausgabe sieht wie folgt aus:
    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. Zeigen Sie die Konfiguration an, und prüfen Sie sie.
    DGMGRL> show configuration;
    Die Ausgabe sieht wie folgt aus:
    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. Switchover von der Datenbankinstanz in OCI zur On-Premise-Datenbank.
    DGMGRL> switchover to orclcdb;
    Die Ausgabe sieht wie folgt aus:
    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"
    Nachdem die Datenbank gemountet wurde, erhalten Sie möglicherweise die folgende Warnung:
    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" 

    Sie können die Warnung ignorieren und mit dem nächsten Schritt fortfahren.

  10. Melden Sie sich auf der Standbydatenbank, die jetzt die Primärdatenbank ist, an, und prüfen Sie die Konfiguration.
    DGMGRL> show configuration;
    Die Ausgabe sieht wie folgt aus:
    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. Prüfen Sie in der primären Datenbankinstanz ORCLCDB, ob der Modus read write ist.
    SQL> select database_role, open_mode from v$database;
    DATABASE_ROLE	 OPEN_MODE
    ---------------- --------------------
    PRIMARY 	   READ WRITE
  12. (Optional) Sie können den Befehl verbose verwenden, um einen vollständigen Stackdump anzuzeigen, einschließlich Rolle, Status, Instanz, Eigenschaften und Speicherort des Alert-Logs und des Data Guard-Broker-Logs.
    DGMGRL> show database verbose orclcdb

Sie können die primäre Datenbank zwischen der On-Premise-Datenbank und der OCI-Datenbankinstanz hin und her wechseln.