Topologie bereitstellen

Mit der RMAN-Klausel "from service" können Sie primäre Datenbankdateien im gesamten Netzwerk in einer Standbydatenbank zurückschreiben und wiederherstellen. Mit dieser Funktion können Sie eine Standbydatenbank anstelle des Befehls RMAN DUPLICATE DATABASE instanziieren. Sie ist intuitiver und weniger fehleranfällig, wodurch Zeit gespart wird.

Hinweis:

Klicken Sie auf Kopieren, um das Befehlsbeispiel zum Einfügen in die Befehlszeile in der Zwischenablage zu speichern. Stellen Sie sicher, dass Sie variables durch für Ihre Implementierung spezifische Werte ersetzen.

Standby-Datenbank mit RMAN erstellen

Erstellen Sie mit Oracle Recovery Manager (RMAN) die Standbydatenbank aus der aktiven Primärdatenbank. Alternativ können Sie ein Restore aus einem Backup der Primärdatenbank ausführen.

  1. Stellen Sie eine Verbindung zur Datenbank her, und starten Sie die Datenbank im NOMOUNT-Modus.
    $ rman target / 
    startup nomount;
  2. Schreiben Sie die Standbykontrolldatei aus dem Primärservice zurück. In diesem Beispiel ist DBUKS_898_LHR die Primärdatenbank:
    restore standby controlfile from service 'DBUKS_898_LHR';
    Die Ausgabe sollte folgendermaßen aussehen:
    Starting restore at 04-JUL-23 
    using target database control file instead of recovery catalog 
    allocated channel: ORA_DISK_1 
    channel ORA_DISK_1: SID=28 device type=DISK 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: restoring control file 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:04 
    output file name=+RECO/DBUKS_R2J_AMS/CONTROLFILE/current.256.1139953721 
    Finished restore at 04-JUL-23
  3. Mount the database:
    alter database mount;
    Die Ausgabe sollte folgendermaßen aussehen:
    released channel: 
    ORA_DISK_1 Statement processed
  4. Ändern Sie als Root auf der OCI-Instanz die Berechtigungen des Oracle-Verzeichnisses, um sie zu öffnen (chmod 777).
    cd /opt/ 
    ls -ltra 
    Folgendes sollte angezeigt werden:
    drwxr-xr-x 10 root root 4096 Jun 20 03:52 oracle 
    Geben Sie Folgendes ein:
    [root@ldbuksdr]# chmod 777 oracle/ 
    ls -ltra 
    Folgendes sollte angezeigt werden:
    drwxrwxrwx 10 root root 4096 Jun 20 03:52 oracle
  5. Schreiben Sie die Datenbank aus der Primärdatenbank zurück (DBUKS_898_LHR):
    restore database from service ' DBUKS_898_LHR ';
    Die Ausgabe sollte folgendermaßen aussehen:
    Starting restore at 04-JUL-23 
    using target database control file instead of recovery catalog 
    allocated channel: ORA_SBT_TAPE_1 
    channel ORA_SBT_TAPE_1: SID=162 device type=SBT_TAPE 
    channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1 allocated 
    channel: ORA_DISK_1 channel ORA_DISK_1: SID=28 device type=DISK 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00001 to +DATA/DBUKS_898_LHR/DATAFILE/system.261.1139943103 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00003 to +DATA/DBUKS_898_LHR/DATAFILE/sysaux.268.1139943085 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:38 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00004 to +DATA/DBUKS_898_LHR/DATAFILE/undotbs1.260.1139943133 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:04 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00005 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/system.264.1139942759 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:49 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00006 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/sysaux.265.1139942759 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25 channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00007 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/undotbs1.266.1139942759 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:18 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00008 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/system.273.1139943583 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:04 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00009 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/sysaux.271.1139943599 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:16 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00010 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/undotbs1.270.1139943611 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:20 channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00011 to +DATA/DBUKS_898_LHR/DATAFILE/users.269.1139943873 channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:02 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00012 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/users.274.1139943875 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:02 
    Finished restore at 04-JUL-23
    exit ;

Standbydatenbank validieren

Als Nächstes müssen Sie die Standbydatenbank validieren.

  1. Zeigen Sie den Datenbanknamen und die Rolle an. Geben Sie in der Eingabeaufforderung SQL> Folgendes ein:
     select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ; 

    Die Antwort sollte in etwa wie folgt angezeigt werden:

    FORCE_LOGGING         FLASHBACK_ON       OPEN_MODE       DATABASE_ROLE       DATAGUARD_BROKER        PROTECTION_MODE 
    -------------------- ------------------ --------------- ------------------- ------------------------ ---------------------------- 
    YES                  NO                  MOUNTED        PHYSICAL STANDBY       DISABLED              MAXIMUM PERFORMANCE
  2. Zeigen Sie den Archivierungsprozess, die Status-Thread-Nummer und die Folgenummer für die Datenbank an:
    select sysdate,process,status,thread#,sequence#,block# from v$managed_standby where status!='IDLE'; 

    Die Antwort sollte in etwa wie folgt angezeigt werden:

    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    DGRD    ALLOCATED    0    0    0 
    04-JUL-23    DGRD    ALLOCATED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 

    Geben Sie anschließend Folgendes ein:

    select distinct process from gv$managed_standby; 

    Die Antwort sollte in etwa wie folgt angezeigt werden:

    PROCESS 
    --------- 
    ARCH 
    DGRD

Standbylogdateien zur Primär- und Standbydatenbank hinzufügen

Standby-Logdateien werden in einer Standbydatenbank verwendet, um Redo-Daten von der Primärdatenbank zu empfangen. Datensätze, die in die Online Redo Logs der Primärdatenbank geschrieben werden, werden an die Standbydatenbank übertragen und gleichzeitig in die Standby Redo Logs geschrieben. Dadurch wird die Wahrscheinlichkeit eines Datenverlusts in der Standbydatenbank minimiert. Standby-Redolog ist für Echtzeitanwendung erforderlich.
Verwenden Sie die Eingabeaufforderung SQL> für die folgenden Schritte.
  1. Fügen Sie zunächst die Standbylogdateien zur Primärdatenbank hinzu.
    1. Geben Sie Folgendes ein:
      select group#, type, member from v$logfile; 

      Sie sehen eine ähnliche Antwort wie diese:

      GROUP#      TYPE    MEMBER 
      ---------- ------- --------------------------------------------------------- 
      3          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_3.259.1139942665 
      2          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_2.258.1139942665 
      1          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665
    2. Geben Sie Folgendes ein:
      select bytes, group# from v$log;
      Sie sehen eine ähnliche Antwort wie diese:
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. Geben Sie diese Reihe von Befehlen ein:
      SQL> alter database add standby logfile thread 1 group 5 ('+RECO') size 1073741824;
      alter database add standby logfile thread 1 group 6 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 7 ('+RECO') size 1073741824;
      Die Antwort für jeden sollte sein:
      Database altered
    4. Geben Sie Folgendes ein:
      select group#, type, member from v$logfile;
      Sie sehen eine ähnliche Antwort wie diese:
      GROUP#      TYPE      MEMBER 
      ---------- -------   ------------------------------------------------------- 
      3          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_3.259.1139942665 
      2          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_2.258.1139942665 
      1          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665 
      4          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_4.432.1141789993 
      5          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_5.431.1141790001 
      6          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_6.430.1141790011 
      7          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_7.430.1141790017
    5. Archivieren Sie die Logliste:
      archive log list
  2. Fügen Sie nun die Standby-Logdateien zur Standby-Datenbank hinzu.
    1. Geben Sie Folgendes ein:
      select group#, type, member from v$logfile;
      Sie sehen eine ähnliche Antwort wie diese:
      GROUP#      TYPE    MEMBER 
      ---------- ------- ------------------------------------------------------ 
      3          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_3.489.1141280529 
      2          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_2.488.1141280519 
      1          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_1.487.1141280511
    2. Geben Sie Folgendes ein:
      select bytes, group# from v$log;
      Sie sehen eine ähnliche Antwort wie diese:
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. Geben Sie diese Reihe von Befehlen ein:
      alter database add standby logfile thread 1 group 4 ('+RECO') size 1073741824;
      alter database add standby logfile thread 1 group 5 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 6 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 7 ('+RECO') size 1073741824;
      Die Antwort für jeden Befehl sollte lauten:
      Database altered
    4. Geben Sie Folgendes ein:
      select group#, type, member from v$logfile;
      Sie sehen eine ähnliche Antwort wie diese:
      GROUP#      TYPE      MEMBER 
      ---------- -------   ------------------------------------------------------ 
      3          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_3.489.1141280529 
      2          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_2.488.1141280519 
      1          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_1.487.1141280511 
      4          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_4.294.1141283919 
      5          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_5.295.1141283929 
      6          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_6.296.1141283937 
      7          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_7.296.1141283938
  3. Löschen Sie die Logdateien mit dem eindeutigen Namen der Primärdatenbank. Von den drei Logdateien ist eine der Dateien das aktuelle Log. Daher können Sie sie zu diesem Zeitpunkt nicht löschen. Diese Datei wird zu einem späteren Zeitpunkt gelöscht und neu erstellt.
    1. Geben Sie Folgendes ein:
      alter database drop logfile group 1;
      Sie sehen eine ähnliche Antwort wie diese:
      alter database drop logfile group 1 
      * 
      ERROR at line 1: 
      ORA-01623: log 1 is current log for instance dbuks (thread 1) - cannot drop 
      ORA-00312: online log 1 thread 1: '+RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665'
    2. Geben Sie Folgendes ein:
      alter database drop logfile group 2; 
      alter database drop logfile group 3;
      Die Antwort für jeden sollte sein:
      Database altered
  4. Erstellen Sie die Logdateien neu, indem Sie die folgenden Befehle eingeben:
    alter database add logfile thread 1 group 2 ('+RECO') size 1073741824;
    alter database add logfile thread 1 group 3 ('+RECO') size 1073741824;
    Die Antwort für jeden sollte sein:
    Database altered.

Oracle Data Guard Broker konfigurieren

Konfigurieren Sie jetzt Oracle Data Guard Broker, registrieren Sie die Standbydatenbank, und synchronisieren Sie Primär- und Standbydatenbanken. Konfigurieren Sie Oracle Data Guard Broker, indem Sie den Parameter dg_broker_config_file in der Primär- und Standbydatenbank aktivieren. Platzieren Sie für Oracle Automatic Storage Management (Oracle ASM) die Broker-Konfigurationsdateien in separaten Datenträgergruppen. Für Oracle Real Application Clusters (Oracle RAC) müssen Broker-Konfigurationsdateien im Shared Storage gespeichert sein.
  1. Prüfen Sie den Wert dg_broker_start für die Primär- und Standbydatenbank. Stellen Sie sicher, dass es auf "True" gesetzt ist. Geben Sie in der SQL-Befehlszeile Folgendes ein:
    show parameter dg_broker_start;
    Die Ausgabe sollte folgendermaßen aussehen:
    NAME                                  TYPE         VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start                       boolean      TRUE 
    Wenn dg_broker_start auf FALSE gesetzt ist, setzen Sie den Parameter auf TRUE, bevor Sie mit den nächsten Schritten fortfahren. Geben Sie Folgendes ein:
    alter system set dg_broker_start=true; 
    select pname from v$process where pname like 'DMON%';
    Die Ausgabe sollte folgendermaßen aussehen:
    PNAME 
    ----- 
    DMON
  2. Prüfen Sie die Oracle Data Guard-Dateien für die Primärdatenbank:
    show parameter dg_broker_config_file1;
    show parameter dg_broker_config_file2;
    Wenn Sie Oracle RAC oder Oracle ASM verwenden, können Sie den Speicherort der Konfigurationsdatei ändern. Beispiel:
    alter system set dg_broker_config_file1=broker_config_file_location; 
    alter system set dg_broker_config_file2=broker_config_file_location; 
  3. Registrieren Sie die primäre und die Standby-Datenbank:
    Mit der Oracle Data Guard-Befehlszeilenschnittstelle (DGMGRL) können Sie die Primärdatenbank registrieren und das Standbydatenbankprofil zur Brokerkonfiguration hinzufügen:
    1. Melden Sie sich beim primären Host als sys an.
      dgmgrl sys/password@net_service_name_for_primary
    2. Erstellen Sie eine Konfiguration, die den Namen der primären Datenbank verwendet.
      CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary_database_name CONNECT IDENTIFIER IS primary_database_name; 
      Die Ausgabe sollte folgendermaßen aussehen:
      CREATE CONFIGURATION dbuks_898_lhr_dbuks_r2j_ams AS PRIMARY DATABASE IS dbuks_898_lhr CONNECT IDENTIFIER IS dbuks_898_lhr;
    3. Fügen Sie die Standby-Datenbank hinzu.
      ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
      Beispiel:
      ADD DATABASE dbuks_r2j_ams AS CONNECT IDENTIFIER IS dbuks_r2j_ams MAINTAINED AS PHYSICAL; 
      
      Die Ausgabe sollte folgendermaßen aussehen:
      Database "dbuks_r2j_ams" added
  4. Aktivieren Sie die Konfiguration:
    enable configuration;
  5. Zeigen Sie die Konfiguration an:
    1. Geben Sie Folgendes ein:
      show configuration; 

      Hinweis:

      Wenn Sie eine Warnung erhalten, dass die Apply Lag nicht bestimmt werden konnte, melden Sie sich über sqlplus bei der primären Datenbank an, und führen Sie einige Log Switches aus.
      Die Ausgabe sollte folgendermaßen aussehen:
      Configuration - dbuks_898_lhr_dbuks_r2j_ams 
      Protection Mode: MaxPerformance 
      Members: 
      dbuks_898_lhr - Primary database 
      dbuks_r2j_ams - Physical standby database 
      Fast-Start Failover: Disabled 
      Configuration Status: 
      SUCCESS (status updated 36 seconds ago)
    2. Zeigen Sie die Konfiguration für die Primärdatenbank an (in diesem Beispiel dbuks_898_lhr):
      show database dbuks_898_lhr 
      Eine Antwort wie die Folgende wird angezeigt:
      Database - dbuks_898_lhr 
      Role: PRIMARY 
      Intended State: TRANSPORT-ON 
      Instance(s): 
      dbuks 
      Database Status: 
      SUCCESS
    3. Zeigen Sie die Konfiguration für die Standbydatenbank an (in diesem Beispiel dbuks_r2j_ams):
      show database dbuks_r2j_ams 
      Eine Antwort wie die Folgende wird angezeigt:
      Database - dbuks_r2j_ams 
      Role: PHYSICAL STANDBY 
      Intended State: APPLY-ON 
      Transport Lag: 0 seconds (computed 1 second ago) 
      Apply Lag: 0 seconds (computed 0 seconds ago) 
      Average Apply Rate: 59.00 KByte/s 
      Real Time Query: ON 
      Instance(s): 
      dbuks 
      Database Status: 
      SUCCESS

Replikation bestätigen

Die Standbydatenbank sollte nun mit der Anwendung des von der Primärdatenbank empfangenen Redo beginnen.

Verwenden Sie die Eingabeaufforderung SQL> für die folgenden Schritte.
  1. Prüfen Sie den MRP-Prozess:
    1. Geben Sie Folgendes ein:
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';
      Die Ausgabe sollte folgendermaßen aussehen:
      SYSDATE    PROCESS     STATUS         THREAD#      SEQUENCE#    BLOCK# 
      ---------  ---------  ------------   ----------   ----------   ---------- 
      10-JUL-23  DGRD       ALLOCATED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  DGRD       ALLOCATED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  RFS        RECEIVING          1           417          2413 
      10-JUL-23  MRP0       APPLYING_LOG       1           417          2412
    2. Zeigen Sie die Data Guard-Prozesse an.
      select distinct process from gv$managed_standby;
      Die Ausgabe sollte folgendermaßen aussehen:
      PROCESS 
      --------- 
      DGRD 
      RFS 
      MRP0 
      ARCH
    3. Die Standby-Datenbank hat jetzt damit begonnen, die Redo-Logs anzuwenden. Führen Sie einige Log Switches in der primären Datenbank aus, und bestätigen Sie die Standby-Datenbank erneut:
      select sysdate, process, status, thread#, sequence#, block#from v$managed_standbywhere status!='IDLE';
      Die Ausgabe sollte folgendermaßen aussehen:
      SYSDATE      PROCESS    STATUS          THREAD#     SEQUENCE#     BLOCK#
      ---------   ---------   ------------   ----------   ----------   ----------
      04-JUL-23   DGRD        ALLOCATED           0           0           0
      04-JUL-23   ARCH        CONNECTED           0           0           0
      04-JUL-23   DGRD        ALLOCATED           0           0           0
      04-JUL-23   ARCH        CLOSING             1          253          1
      04-JUL-23   ARCH        CONNECTED           0           0           0
      04-JUL-23   ARCH        CLOSING             1          252          1
      04-JUL-23   MRP0        APPLYING_LOG        1          254          17
      04-JUL-23   RFS         RECEIVING           1          254          18
    4. Archivieren Sie die Logliste in der Primärdatenbank:
      archive log list
      Die Ausgabe sollte folgendermaßen aussehen:
      Database log mode Archive Mode 
      Automatic archival Enabled 
      Archive destination USE_DB_RECOVERY_FILE_DEST 
      Oldest online log sequence 415 
      Next log sequence to archive 417 
      Current log sequence 417 
      Geben Sie anschließend Folgendes ein:
      alter system switch logfile;
      Sie sollten diese Antwort erhalten:
      System altered.
      Geben Sie Folgendes ein:
       / 
      Folgendes sollte angezeigt werden:
      System altered.
      Archivieren Sie jetzt die Logliste:
      archive log list 
      Sie sollten diese Antwort erhalten:
      Database log mode Archive Mode 
      Automatic archival Enabled 
      Archive destination USE_DB_RECOVERY_FILE_DEST 
      Oldest online log sequence 417 
      Next log sequence to archive 419 
      Current log sequence 419
    5. Archivieren Sie die Log-Liste der Standbydatenbank. Geben Sie Folgendes ein:
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';

      Sie sollten diese Antwort erhalten:

      SYSDATE      PROCESS     STATUS        THREAD#      SEQUENCE#      BLOCK#
      ---------    ---------  ------------ ----------    ----------     ----------
      10-JUL-23    DGRD       ALLOCATED         0             0             0
      10-JUL-23    ARCH      CONNECTED          0             0             0
      10-JUL-23    DGRD      ALLOCATED          0             0             0
      10-JUL-23    ARCH      CLOSING            1            418            1
      10-JUL-23    ARCH      CONNECTED          0             0             0
      10-JUL-23    ARCH      CLOSING            1            417          2048
      10-JUL-23    RFS       RECEIVING          1            419           59
      10-JUL-23    MRP0      APPLYING_LOG       1            419           58
  2. Aktivieren Sie Flashback in der Standby-Datenbank:
    1. Geben Sie Folgendes ein:
      ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel; 
      SQL> alter database flashback on;
      Nach jedem Befehl sollte Folgendes angezeigt werden:
      Database altered
    2. Stellen Sie sicher, dass das Datenbank-Flashback aktiviert (ein) ist.
      select flashback_on from v$database;
      Die Ausgabe sollte folgendermaßen aussehen:
      FLASHBACK_ON 
      ------------------ 
      YES 
    3. Geben Sie anschließend Folgendes ein:
      recover managed standby database using current logfile disconnect from session;
      Folgendes sollte angezeigt werden:
      Media recovery complete.
  3. Zeigen Sie die Datenbankdetails an:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    Die Ausgabe sollte folgendermaßen aussehen:
    FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE   DATABASE_ROLE     DATAGUARD_BROKER   PROTECTION_MODE 
    ---------------------------------------------------------- --------------- ----- ----------------------- ----------------------------- 
    YES             YES            MOUNTED     PHYSICAL STANDBY  ENABLED          MAXIMUM PERFORMANCE
  4. Mit dem Utility Server Control (srvctl) können Sie die Standbydatenbank stoppen:
    srvctl stop database -d db_unique_name
    Die Ausgabe sollte folgendermaßen aussehen:
    srvctl stop database -d dbuks_r2j_ams
  5. Starten Sie die Standby-Datenbank mit dem Utility Server Control:
    srvctl start database -d db_unique_name
    Die Ausgabe sollte folgendermaßen aussehen:
    srvctl start database -d dbuks_r2j_ams
  6. Zeigen Sie die Datenbankdetails an:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    Die Ausgabe sollte folgendermaßen aussehen:
     FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE               DATABASE_ROLE      DATAGUARD_BROKER     PROTECTION_MODE 
    -----------------------------------------------------------------------   -------------------- ----------------------- 
    YES             YES             READ ONLY WITH APPLY   PHYSICAL STANDBY   ENABLED               MAXIMUM PERFORMANCE
  7. Sie können nun weitere Logfile Switches von der primären Datenbank angeben und sicherstellen, dass das Redo auf die Standby-Datenbank angewendet wird.
  8. Erstellen Sie die ausstehende Logdatei neu, die mit dem primären eindeutigen Namen vorhanden ist. Geben Sie die folgenden Befehle ein:
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel; 
    alter database drop logfile group 1;
    alter database add standby logfile thread 1 group 1 ('+RECO') size 1073741824;
    
    Nach jedem Befehl sollte Folgendes angezeigt werden:
    Database altered.
    Geben Sie abschließend Folgendes ein:
    recover managed standby database using current logfile disconnect from session; 
    Folgendes sollte angezeigt werden:
    Media recovery complete.