Data Guard-Bereitstellung validieren

Nachdem Sie den Data Guard-Broker eingerichtet haben, müssen Sie prüfen, ob die Wiederherstellung aus der primären Datenbank kopiert und auf die Standby-Datenbank angewendet wurde. Mit dem folgenden Verfahren können Sie den Data Guard-Status in der primären Datenbank und der Standby-Datenbank prüfen.

Die folgenden Beispiele werden in diesem Leitfaden verwendet:

Eindeutiger Name der Datenbank Server-Hostnamen RAC-Instanznamen Rolle
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Primär
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Standby

Data Guard-Bereitstellung validieren

  1. Melden Sie sich beim ersten Bare-Metal-Lösungsserver an, der die primäre Datenbank hostet, und legen Sie dann die Umgebungsvariable ORACLE_SID fest, damit Sie eine Verbindung zur primären Datenbank herstellen können:

    source oraenv <<< "DBDG_SITE11"
    
  2. Starten Sie SQL*Plus und ermitteln Sie dann die neueste Sequenznummer für archivierte Wiederherstellungs-Logs:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    

    Die folgende Ausgabe hat die maximale Sequenznummer 40 für Thread 1 und eine maximale Sequenznummer von 33 für Thread 2:

       THREAD# Last Primary Seq Archived
    ---------- -------------------------
             1                        40
             2                        33
    

    Notieren Sie die Ergebnisse, um sie mit der Standby-Datenbank zu vergleichen. Es wird erwartet, dass Sequenznummern in der Standby-Datenbank mit der primären Datenbank übereinstimmen.

  3. Melden Sie sich beim ersten Bare-Metal-Lösungsserver an, der die Standby-Datenbank hostet, und legen Sie dann die Umgebungsvariable ORACLE_SID fest, damit Sie eine Verbindung zur Standby-Datenbank herstellen können:

    source oraenv <<< "DBDG_SITE21"
    
  4. Starten Sie SQL*Plus und prüfen Sie, ob die letzte empfangene und angewendete Sequenznummer mit der neuesten Sequenznummer in der primären Datenbank übereinstimmt:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY
    THREAD# ORDER BY 1;
    

    Die folgende Ausgabe enthält Sequenznummern, die mit der vorherigen Abfrage mit der Standby-Datenbank übereinstimmen:

       THREAD# Last Standby Seq Received
    ---------- -------------------------
             1                        40
             2                        33
    
       THREAD# Last Standby Seq Applied
    ---------- ------------------------
             1                       40
             2                       33
    
  5. Prüfen Sie, ob der Status des verwalteten Wiederherstellungsprozesses APPLYING_LOG lautet:

    SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
    

    Das folgende Beispiel zeigt einen einzelnen verwalteten Wiederherstellungsprozess mit dem Namen MRP0 und mit dem Status APPLYING_LOG:

    PROCESS   STATUS
    --------- ------------
    MRP0      APPLYING_LOG
    
  6. Prüfen Sie den Transport oder Verzögerungen in der Standby-Datenbank:

    COLUMN NAME FORMAT a20
    COLUMN VALUE FORMAT a30
    SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
    

    Die folgende Ausgabe zeigt keine Verzögerung in der Standby-Datenbank:

    NAME                 VALUE
    -------------------- ------------------------------
    transport lag        +00 00:00:00
    apply lag            +00 00:00:00
    

    Wenn es eine Verzögerung gibt, lesen Sie die Dokumentation zur Fehlerbehebung bei Oracle.

Datenbank-Switchover mit Data Guard-Broker

Ein Switchover ist eine Rollenumkehr, bei der die primäre Datenbank zu einer Standby-Datenbank wird und umgekehrt. Während des Switchover-Prozesses werden Datenbankclients von der primären Datenbank getrennt. Je nachdem, wie Ihre Anwendung eine Verbindung zur Datenbank herstellt, kann ein Switchover den Anwendungstraffic beeinträchtigen. Oracle bietet Optionen zur Aufrechterhaltung der Anwendungskontinuität bei Rollenübergängen. Sie können Ihre Bereitschaft zur Notfallwiederherstellung testen, indem Sie mit der folgenden Anleitung einen Datenbank-Switchover ausführen:

  1. Melden Sie sich bei dem Bare-Metal-Lösungsserver an, der die primäre Datenbank hostet.

  2. Starten Sie die Data Guard-Befehlszeileschnittstelle und stellen Sie eine Verbindung zur Standby-Datenbank her:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort für Ihre SYS-Remote-Anmeldung für die Datenbank ein.

  4. Prüfen Sie, ob die Datenbank für das Switchover bereit ist.

    VALIDATE DATABASE DBDG_SITE2;
    

    Sie erhalten eine entsprechende Meldung, wenn die Datenbank für die Umstellung bereit ist.

  5. Wenn Sie die Erfolgsmeldung erhalten haben, führen Sie den Switchover-Befehl aus:

    SWITCHOVER TO DBDG_SITE2;
    

    Wenn der Befehl erfolgreich ist, erhalten Sie eine Nachricht, dass DBDG_SITE2 die neue primäre Datenbank in der Konfiguration ist.

  6. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Datenbankrollen vertauscht wurden:

    SHOW CONFIGURATION;
    
  7. Führen Sie den folgenden Befehl aus, um zur ursprünglichen Konfiguration zurückzukehren:

    SWITCHOVER TO DBDG_SITE1;
    

Datenbank-Failover mit Data Guard-Broker

Ein Failover ist ein Rollenwechsel, bei dem eine der Standby-Datenbanken aufgrund eines kompletten Ausfalls zur primären Datenbank migriert wird. Das Wiederherstellen wird erst dann in die Standby-Datenbank gesendet, wenn die Standby-Datenbank wiederhergestellt wurde.

Failover ausführen

  1. Melden Sie sich beim ersten Bare-Metal-Lösungsserver an, der die Standby-Datenbank hostet.

  2. Stellen Sie eine Verbindung zur Data Guard-Befehlszeilenschnittstelle her und führen Sie dann ein Failover der primären Datenbank zur Standby-Datenbank aus:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort für Ihre SYS-Remote-Anmeldung für die Datenbank ein.

  4. Failover initialisieren:

    FAILOVER TO DBDG_SITE2
    

    Führen Sie show configuration; aus, um zu prüfen, ob DBDG_SITE2 jetzt die primäre Datenbank ist und DBDG_SITE1 wiederhergestellt werden muss.

Primäre Datenbank reaktivieren

Sie können die primäre Datenbank erst nach einem Failover wiederherstellen, wenn flashback database aktiviert ist. So aktivieren Sie die ausgefallene primäre Datenbank wieder:

  1. Melden Sie sich beim ersten Bare-Metal-Lösungsserver an, der die primäre Datenbank hostet.

  2. Stellen Sie eine Verbindung zur Data Guard-Befehlszeilenschnittstelle her, melden Sie sich in den primären Datenbanken an und aktivieren Sie dann die fehlerhafte Datenbank wieder:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    

    Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort für Ihre SYS-Remote-Anmeldung für die Datenbank ein.

  3. Reaktivieren Sie die Datenbank:

    REINSTATE DATABASE DBDG_SITE1;
    EXIT;
    

Weitere Informationen

Data Guard-Beobachter in Compute Engine einrichten.