Oracle RAC migrieren

Um die Migration einer Oracle RAC -Datenbank von einem Oracle Cloud Infrastructure Classic -Server zu einem Oracle Cloud Infrastructure Database -System durchzuführen, können Sie Oracle Data Guard verwenden. Sie müssen die Datenbank auf Oracle Cloud Infrastructure Classic als Primärdatenbank (der Quelldatenbank) konfigurieren, die Sie in eine Standbydatenbank (die Zieldatenbank) in Oracle Cloud Infrastructure auf virtuellen Rechnersystemen migrieren.

Primär- (Quell-) Datenbank konfigurieren

Um die Primärdatenbank (die Quelldatenbank) zu konfigurieren, konfigurieren Sie Oracle Data Guard, und ändern Sie die Dateien listener.ora und tnsnames.ora für die Standbydatenbank (die Zieldatenbank).

Primärdatenbank für die Standbydatenbank konfigurieren

In dieser Konfiguration konfigurieren Sie die Primärdatenbank (Quell-) zur Verwendung von Oracle Data Guard.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Melden Sie sich bei der Standbydatenbank (der Zieldatenbank) als Eigentümer der Datenbanksoftware an.
    sudo su - oracle
  3. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  4. Melden Sie sich bei der Datenbankinstanz als Benutzer mit Administratorberechtigungen an. Beispiel:
    sqlplus / as sysoper
  5. Stellen Sie sicher, dass sich die Datenbank im Modus ARCHIVELOG befindet.
    ARCHIVE LOG LIST
  6. Wenn die Ausgabe für Database log mode No Archive Mode ist und die Ausgabe für Automatic archival Disabled ist, gehen Sie folgendermaßen vor:
    1. Beenden Sie SQL*Plus
      SQL> exit
    2. Datenbank herunterfahren.
      srvctl stop database -db db_unique_name
    3. Datenbank im Mount-Modus neu starten
      srvctl start database -db db_unique_name -o mount
    4. Melden Sie sich bei der Datenbankinstanz als Benutzer mit Administratorberechtigungen an. Beispiel:
      sqlplus / as sysoper
    5. Aktivieren Sie den Archive-Logmodus.
      ALTER DATABASE ARCHIVELOG;
    6. Stellen Sie sicher, dass sich die Datenbank nun im Archive-Logmodus befindet.
      ARCHIVE LOG LIST
      Die Ausgabe für die Ausgabe des Datenbank-Logmodus muss Archive Mode sein, und die Ausgabe für Automatic archival ist Aktiviert .
    7. Öffnen Sie die Datenbank.
      ALTER DATABASE OPEN;
  7. Melden Sie sich mit der SYSDBA -Administratorberechtigung an.
    CONNECT / AS SYSDBA
  8. Bei einer mehrmandantenfähigen Umgebung gehen Sie folgendermaßen vor:
    1. Prüfen Sie den Status der PDBS.
      SHOW PDBS
    2. Wenn die PDBS nicht geöffnet sind, öffnen Sie sie.
      ALTER PLUGGABLE DATABASE ALL OPEN;
  9. Stellen Sie sicher, dass sich die Datenbank im Force Logging-Modus befindet. Beispiel:
    SELECT NAME, OPEN_MODE, FORCE_LOGGING FROM V$DATABASE;
  10. Aktivieren Sie gegebenenfalls force logging.
    ALTER DATABASE FORCE LOGGING;
  11. Prüfen Sie die Konfiguration.
    SELECT NAME, CDB, OPEN_MODE, FORCE_LOGGING FROM V$DATABASE;
    Die Spalte FORCE_LOGGING muss YES lauten.
  12. Verwenden Sie den Befehl SHOW PARAMETER, um die folgenden Datenbankparameter zu prüfen:
    1. DB_NAME und DB_UNIQUE_NAME: Stellen Sie sicher, dass diese Namen nicht identisch mit den Namen sind, die in der Zieldatenbank verwendet werden.
    2. REMOTE_LOGIN_PASSWORDFILE: Dieser Parameter muss auf EXCLUSIVE gesetzt werden.

Statische Services zu der Datei listener.ora der Primärdatenbank hinzufügen

In diesem Abschnitt müssen Sie einen neuen statischen Listener zu listener.or hinzufügen oder den Listener neu starten.

  1. Verwenden Sie SSH, um sich bei dem ersten Knoten der Primär- (Quell-) Datenbank anzumelden.
  2. Melden Sie sich in der Befehlszeile als grid user an.
    sudo su - grid
  3. Ändern Sie die Datei /u01/app/12.2.0.1/grid/network/admin/listener.ora so, dass sie den statischen Listener enthält. Das folgende Beispiel zeigt das Format für einen statischen Listener:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SDU=65535)
          (GLOBAL_DBNAME = source_db_unique_name.source_db_domain)
          (ORACLE_HOME = source_oracle_home)
          (ENVS="TNS_ADMIN= source_oracle_home/network/admin")
          (SID_NAME = source_db_name)
        )
      )
  4. Listener stoppen.

    Hinweis:

    Das Stoppen und Starten des statischen Listeners kann sich in wenigen Sekunden auf neue Verbindungen zur Datenbank auswirken.
    srvctl stop listener -l LISTENER
  5. Starten Sie den Listener neu.
    srvctl start listener -l LISTENER
  6. Prüfen Sie den Listener-Status.
    lsnrctl status
  7. Prüfen Sie, ob Einträge in der Ausgabe mit dem Status UNKNOWN vorhanden sind.
  8. Wiederholen Sie die vorherigen Schritte für den zweiten Knoten der Primärdatenbank (die Quelldatenbank).

Primärdatenbankparameter konfigurieren

Nachdem Sie die Primär- (Quell-) Datenbank konfiguriert und statische Services zu der Datei listener.ora der Primärdatenbank hinzugefügt haben, können Sie die Oracle Data Guard -Parameter in der Primärdatenbank konfigurieren.

  1. Verwenden Sie SSH, um sich bei dem ersten RAC-Knoten der Primärdatenbank (der Quelldatenbank) anzumelden.
  2. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt.
    sqlplus / as sysdba
    Enter password: password
  3. Automatische Verwaltung von Standby-Dateien aktivieren.
    ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SID='*' SCOPE=BOTH;
  4. Legen Sie das Ziel für die Archivverzögerung fest.
    ALTER SYSTEM SET ARCHIVE_LAG_TARGET=1800 SID='*' SCOPE=BOTH;
  5. Geben Sie die Namen und Speicherorte der Oracle Broker-Konfigurationsdatei an. Die folgenden Anweisungen hängen vom Typ der Datenbankspeicherung ab.
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='/u02/app/oracle/oradata/<db_unique_name>/dr1<db_unique_name>.dat' SID='*' SCOPE=BOTH; SCOPE=BOTH;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='/u03/app/oracle/fast_recovery_area/<db_unique_name>/dr2<db_unique_name>.dat' SID='*' SCOPE=BOTH;
  6. Aktivieren Sie den Oracle Broker DMON-Prozess für die Datenbank.
    ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
  7. (Optional) Legen Sie die Parameter DB_BLOCK_CHECKING und DB_BLOCK_CHECKSUM fest.
    ALTER SYSTEM SET DB_BLOCK_CHECKING=FULL SID='*' SCOPE=BOTH;
    ALTER SYSTEM SET DB_BLOCK_CHECKSUM=FULL SID='*' SCOPE=BOTH;
  8. (Optional) Setzen Sie den Logpuffer auf 256 MB.
    ALTER SYSTEM SET LOG_BUFFER=268435456 SID='*' SCOPE=BOTH;
  9. Setzen Sie den Parameter DB_LOST_WRITE_PROTECT auf TYPICAL.
    ALTER SYSTEM SET DB_LOST_WRITE_PROTECT=TYPICAL SID='*' SCOPE=BOTH;
  10. Aktivieren Sie das Flashback Feature der Datenbank. Der empfohlene Mindestwert für DB_FLASHBACK_RETENTION_TARGET beträgt 120 Minuten.
    ALTER DATABASE FLASHBACK ON;
    ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=120; 
    ALTER SYSTEM ARCHIVE LOG CURRENT;
  11. Fügen Sie die Standby Redo-Logs basierend auf dem Online Redo-Log hinzu. Mit der folgenden Abfrage können Sie die Anzahl und Größe (in Byte) der ORLs bestimmen. Die Größe der Standby Redo-Logs muss identisch mit den Online Redo-Logs sein, Sie müssen jedoch ein oder mehrere zusätzliche Standby Redo-Logs hinzufügen, als Online Redo-Logs vorhanden sind. In dem folgenden Beispiel sind vier Online Redo-Logs vorhanden, sodass Sie mindestens fünf Standby Redo-Logs hinzufügen müssen. Anders ausgedrückt: Sie müssen für jeden Thread die aktuellen Redo-Logs plus mindestens eines angeben und dann dieselbe Größe wie die ursprünglichen Redo-Logs verwenden.
    1. Führen Sie die folgende Abfrage aus, um die Anzahl und Größe der Oracle Redo-Logs zu bestimmen.
      SELECT GROUP#, BYTES FROM V$LOG;
      Die Ausgabe sollte der folgenden ähneln.
      GROUP# BYTES
      ------ ----------
      1      1073741824
      2      1073741824
      3      1073741824
      4      1073741824
    2. Geben Sie bei dem ersten Thread die aktuellen Redo-Logs plus eins und dieselbe Größe wie die aktuellen Redo-Logs an. Beispiel:
      ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
      GROUP 5 SIZE 1073741824,
      GROUP 6 SIZE 1073741824, 
      GROUP 7 SIZE 1073741824,
      GROUP 8 SIZE 1073741824,
      GROUP 9 SIZE 1073741824;
    3. Geben Sie bei dem zweiten Thread die aktuellen Redo-Logs plus eins und dieselbe Größe wie die aktuellen Redo-Logs an. Beispiel:
      ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
      GROUP 10 SIZE 1073741824,
      GROUP 11 SIZE 1073741824, 
      GROUP 12 SIZE 1073741824,
      GROUP 13 SIZE 1073741824,
      GROUP 14 SIZE 1073741824;
    4. Prüfen Sie, ob Sie die korrekte Anzahl von Standby Redo-Logs erstellt haben.
      SELECT GROUP#, BYTES FROM V$STANDBY_LOG;
      Ausgabe wie die Folgende sollte angezeigt werden:
          GROUP#      BYTES
      ---------- ----------
               5 1073741824
               6 1073741824
               7 1073741824
               8 1073741824
               9 1073741824
              10 1073741824
              11 1073741824
              12 1073741824
              13 1073741824
              14 1073741824
      10 rows selected.

Standbydatenbank (Ziel) konfigurieren

Um die Standby-Datenbank (Ziel-) zu konfigurieren, müssen Sie die Standby-Datenbank löschen und dann die Dateien oratab, listener.ora undtnsnames.ora ändern.

Einträge für die Datenbankinstanzen hinzufügen

Aktualisieren Sie die Datei /etc/oratab auf den Knoten Oracle RAC, und fügen Sie einen Eintrag für die Datenbankinstanz wie folgt hinzu:

  1. Verwenden Sie SSH, um sich bei dem ersten Knoten der zu migrierenden Quelldatenbank (Primärdatenbank) anzumelden.
  2. Aktualisieren Sie /etc/oratab, um die Datenbankinstanz-ID dem Datenbankeintrag hinzuzufügen. Gehen Sie dazu folgendermaßen vor:
    1. Bearbeiten Sie /etc/oratab:
      sudo vi /etc/oratab
    2. Fügen Sie einen Eintrag für die Datenbank in folgendem Format hinzu:
      $ORACLE_SID:$ORACLE_HOME:N
      Beispiel für Knoten 1:
      orcl1:/u01/app/oracle/product/12.1.0.2/dbhome_1:N
      Beispiel für Knoten 2:
      orcl2:/u01/app/oracle/product/12.1.0.2/dbhome_1:N
  3. Führen Sie das Skript oraenv aus, um Umgebungsvariablen der Datenbank festzulegen. Beispiel: $ ORACLE_HOME :
    . oraenv
  4. Wiederholen Sie die vorherigen Schritte für den zweiten Oracle RAC -Knoten.

Standby- (Ziel-) Datenbank löschen

  1. Verwenden Sie SSH, um sich bei dem Standby- (Ziel-) Server anzumelden.
  2. Wechseln Sie zu dem oracle -Benutzer, der der Datenbankeigentümer ist.
  3. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt.
    sqlplus / as sysdba
    Enter password: password
  4. Cluster der Datenbank wie folgt aufheben:
    alter system set cluster_database=false sid='*' scope=spfile;
    System altered.
  5. Beenden Sie SQL*Plus:
     exit
  6. Datenbank mit srvctl stoppen:
    srvctl stop database -db database_unqiue_name
  7. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt.
    sqlplus / as sysdba
    Enter password: password
  8. Datenbank im eingeschränkten Modus hochfahren und mounten:
     startup mount restrict
    ORACLE instance started.
    Total System Global Area 7516192768 bytes
    Fixed Size                  2941872 bytes
    Variable Size            1409289296 bytes
    Database Buffers         6073352192 bytes
    Redo Buffers               30609408 bytes
    Database mounted.
  9. Standby-Datenbank löschen:
     drop database;
    Database dropped.

Statische Services zu der Datei listener.ora der Standby-Datenbank hinzufügen

Nachdem Sie statische Services zu der listener.ora -Datei der Standbydatenbank (der Quelldatenbank) hinzugefügt haben, müssen Sie den Listener neu starten.

  1. Verwenden Sie SSH, um sich bei dem ersten Oracle RAC -Knoten des Standbydatenbank- (Quelldatenbank) Servers anzumelden.
  2. Melden Sie sich in der Befehlszeile als grid -Benutzer an.
    sudo su - grid
  3. Ändern Sie dieDatei $ ORACLE_HOME/network/admin/listener.ora so, dass sie die Datei static listener enthält. Das folgende Beispiel zeigt das für eine static listener zu verwendende Format:
    SID_LIST_LISTENER=
     (SID_LIST=
      (SID_DESC=
      (SDU=65535)
      (GLOBAL_DBNAME = standby_db_unique_name.standby_db_domain)
      (SID_NAME = standby_db_sid)
      (ORACLE_HOME= standby_oracle_home)
      (ENVS="TNS_ADMIN= standby_oracle_home/network/admin")
      )
    )
  4. Verwenden Sie das Utility srvctl, um den Listener zu stoppen.
    srvctl stop listener -l LISTENER
  5. Starten Sie listener neu.
    srvctl start listener -l LISTENER
  6. Prüfen Sie den Status von listener.
    lsnrctl status

    Hinweis:

    ausgabe ist der neue Listener im Status UNKNOWN
  7. Wiederholen Sie diese Schritte für den zweiten Oracle RAC -Knoten.

TDE Wallets aus der Primärdatenbank in die Standbydatenbank kopieren

Sie können die TDE-Wallet-Dateien mit Secure Copy Protocol (SCP) manuell aus dem Primärdatenbank (der Quelldatenbank) in das Standby-Datenbanksystem (das Zieldatenbanksystem) kopieren.

TDE-Wallet komprimieren

Sie müssen diesen Vorgang in der Primärdatenbank (der Quelldatenbank) ausführen.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Melden Sie sich in der Befehlszeile als Eigentümer der Datenbanksoftware oracle an.
    sudo su - oracle
  3. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  4. Um das Wallet-Verzeichnis zu suchen, melden Sie sich mit derSYSDBA-Administratorberechtigungen bei der Primärdatenbank (der Quelldatenbank ) an.
    sqlplus / as sysdba
  5. Fragen Sie die Spalte WRL_PARAMETER der dynamischen V$ENCRYPTION_WALLET -Ansicht nach dem Verzeichnis ab, in dem sich das Wallet befindet.
    SELECT * FROM V$ENCRYPTION_WALLET;
  6. Beenden Sie SQL*Plus.
    exit
  7. Gehen Sie zu dem Verzeichnis, in dem sich die Wallet-Dateien befinden. Beispiel:
    cd /u02/app/oracle/admin/source_db_unique_name
  8. Mit dem TAR-Befehl können Sie das TDE-Wallet komprimieren. Beispiel:
    tar cvf tde_wallet.tar ./tde_wallet
    Sie sehen eine Anzeige wie die folgende:
    ./tde_wallet/
    ./tde_wallet/ewallet.p12
    ./tde_wallet/cwallet.sso
    ./tde_wallet/ewallet_2018021607225910.p12
TDE-Wallet kopieren und Berechtigungen im Wallet-Verzeichnis festlegen

Nach dem Backup der TDE-Wallet-Datei müssen Sie ein Verzeichnis für das Wallet erstellen und Berechtigungen für dieses Verzeichnis festlegen.

  1. Kopieren Sie die Wallet-TAR-Datei in ein TMP-Verzeichnis. Beispiel:
    cp tde_wallet.tar /tmp/
  2. Beenden, um zum OPC -Benutzer zu werden.
    $ exit
  3. Kopieren Sie den Private Key von Ihrem lokalen Host in die Primärdatenbank.
    Standardmäßig werden die Private Keys nicht in den DBs gespeichert
    scp -i /home/opc/.ssh/privateKey opc@<Primary DB IP>:/home/opc/.ssh/
  4. Verwenden Sie SCP, um die Wallet-Dateien aus der Primärdatenbank (der Quelldatenbank) in die Standbydatenbank (der Zieldatenbank) im Verzeichnis /opt/oracle/dcs/commonstore/wallets/tde/$ ORACLE_UNQNAME zu kopieren. Beispiel:
    scp -i /home/opc/.ssh/privateKey /tmp/tde_wallet.tar opc@<Standby DB IP>:/tmp/
    Sie sehen eine Anzeige wie die folgende:
    tde_wallet.tar
    100% 20KB 20.0KB/s 00:00
  5. Verwenden Sie SSH, um sich beim Zieldatenbankserver anzumelden.
  6. Melden Sie sich als Eigentümer der Datenbanksoftware oracle an.
    sudo su - oracle
  7. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  8. Um das Wallet-Verzeichnis zu suchen, zeigen Sie den Inhalt von sqlnet.ora an:
    cat $ORACLE_HOME/network/admin/sqlnet.ora
  9. DerParameter ENCRYPTION_WALLET_LOCATION zeigt den Speicherort des Wallets an. Beispiel:
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  10. Gehen Sie zum Ziel-Wallet-Verzeichnis. Beispiel:
    cd /opt/oracle/dcs/commonstore/wallets/tde
  11. Prüfen Sie, ob das richtige Wallet in diesem Verzeichnis enthalten ist.
    ls target_db_unique_name
  12. Sichern Sie die Wallet-Datei. Beispiel:
    mv target_db_unique_name target_db_unique_name.old
  13. Erstellen Sie ein Verzeichnis, in dem das Wallet gespeichert werden soll. Beispiel:
    mkdir target_db_unique_name
  14. Prüfen Sie die Berechtigungen für das Wallet-Verzeichnis.
    ls -ld target_db_unique_name
  15. Falls erforderlich, erteilen Sie dem Eigentümer der Datenbanksoftware die erforderlichen Lese-, Schreib- und Ausführungsberechtigungen.
    chmod 700 target_db_unique_name
  16. Prüfen Sie die Berechtigungen erneut.
    ls -ld target_db_unique_name
  17. Kopieren Sie die Wallet-TAR-Datei in das aktuelle Verzeichnis.
    cp /tmp/tde_wallet.tar .
  18. Prüfen Sie die Berechtigungen.
    ls -rlt
    Sie sehen eine Anzeige wie die folgende:
    total 124
    drwx------ 2 oracle oinstall 20480 Feb 16 09:25 target_db_unique_name.old
    drwx------ 2 oracle oinstall 20480 Feb 16 10:16 target_db_unique_name
    -rw-r--r-- 1 oracle oinstall 20480 Feb 16 10:17 tde_wallet.tar
TDE-Wallet-Prozess abschließen

Sie müssen die TDE-Wallet-Datei tar extrahieren und dann ihren Inhalt in das Wallet-Verzeichnis in der Standbydatenbank (der Zieldatenbank) verschieben.

  1. Stellen Sie auf der Standbydatenbank (der Zieldatenbank) sicher, dass Sie sich im richtigen Wallet-Verzeichnis befinden. Beispiel:
    pwd
     
    # Output similar to the following should appear:
    /opt/oracle/dcs/commonstore/wallets/tde
  2. Extrahieren Sie die tar-Datei.
    tar xvf tde_wallet.tar
    Ausgabe wie die Folgende sollte angezeigt werden:
    ./tde_wallet/ewallet.p12
    ./tde_wallet/ewallet_2018050819024979.p12
    ./tde_wallet/cwallet.sso
  3. Verschieben Sie den Inhalt von tde_wallet in das Wallet-Verzeichnis in der Standby-Datenbank (Zieldatenbank).
    mv ./tde_wallet/* ./target_db_unique_name
  4. Entfernen Sie den Inhalt von tde_wallet aus der Standby-Datenbank (der Zieldatenbank).
    rm -rf ./tde_wallet

Standby-Initialisierungsparameterdatei konfigurieren und Instanz im NOMOUNT-Modus starten

Nachdem Sie die Standby-Initialisierungsdatei konfiguriert haben, können Sie die Datenbank im NOMOUNT -Modus neu starten.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Melden Sie sich als Eigentümer der Datenbanksoftware oracle an.
    sudo su - oracle
  3. Führen Sie das Skript oraenv aus, das die Umgebungsvariable $ORACLE_HOME festlegt.
    . oraenv
  4. Gehen Sie zum Verzeichnis dbs.
    cd $ORACLE_HOME/dbs
  5. Erstellen Sie eine temporäre Initialisierungsparameterdatei mit dem Namen init_<SID>.ora, wobei <SID> die Ziel-Datenbank-SID wie folgt ist:
    echo "*.db_name='db_name'" > $ORACLE_HOME/dbs/init<sid>.ora
    echo "*.db_unique_name='target_db_unique_name'" >> $ORACLE_HOME/dbs/init<sid>.ora
  6. Sichern Sie die vorhandene Kennwortdatei, sofern vorhanden. Beispiel:
    mv $ORACLE_HOME/dbs/orapw<sid> $ORACLE_HOME/dbs/orapw<sid>.old
  7. Neue Kennwortdatei erstellen. Beispiel:
    orapwd file=$ORACLE_HOME/dbs/orapwtarget password=admin_password_for_primary entries=5
  8. Ändern Sie die Kennwortdatei im Cluster in die non-ASM -Kennwortdatei:
    $ srvctl modify database -d <oci_db_unique_name> -pwfile $ORACLE_HOME/dbs/orapw<oci_oracle_sid>
    $ srvctl config database -d <oci_db_unique_name>
  9. Melden Sie sich als Benutzer mit der sysdba -Administratorberechtigung bei der Standbydatenbank (der Zieldatenbank) an. Beispiel:
    sqlplus / as sysdba 
  10. Datenbank herunterfahren. Beispiel:
    shutdown immediate
  11. Starten Sie die Datenbank im NOMOUNT -Modus mit der Initialisierungsparameterdatei init<sid>.ora neu.
    startup force nomount PFILE=?/dbs/init<sid>.ora

Zieldatenbank für Standby aus aktiver Datenbank duplizieren

You can execute a script to duplicate the standby database (the target database). If the primary database (the source database) is large, then you can allocate additional channels to improve its performance. For a newly installed database, one channel typically runs the database duplication in a couple of minutes. Ensure that no errors occur after you run the Oracle Recovery Manager (Oracle RMAN) duplication operation. If errors occur, then restart the database by using the initialization parameter file (not spfile), in case it is generated under the $ORACLE_HOME/dbs directory as part of the Oracle RMAN duplication process.

  1. Melden Sie sich bei der Standby-Datenbank (der Zieldatenbank) als Eigentümer der Datenbanksoftware oracle an.
    su - oracle
  2. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  3. dup.rcv erstellen
    vi dup.rcv
    Fügen Sie den Inhalt des Skripts ein, während Sie die erforderlichen Variablen aktualisieren.
  4. Melden Sie sich mit der Standby-Datenbank (der Zieldatenbank) im Modus NOMOUNT bei Oracle RMAN an.
    rman
    RMAN> connect target sys@<primary_db_tnsnames_name>
    target database Password: password
    RMAN> connect auxiliary sys@<standby_db_tnsnames_name>
    auxiliary database Password: password
  5. Führen Sie das folgende Skript aus, um die Zieldatenbank für eine Standbydatenbank aus einer aktiven Datenbank zu duplizieren. Das folgende Beispiel zeigt das Skript dup.rcv, das vom Benutzer erstellt werden muss , und basiert auf dem My Oracle Support -Hinweis 2369137 . RMAN Aktive Duplikatläufe in RMAN-06217 -- PUSH & PULL -Methode erläutern (Dokument-ID 2369137.1). In diesem Beispiel wurde das Skript dup.rcv angepasst, um die Duplizierung (Image-Kopien) aus dem Dateisystem in Oracle Automatic Storage Management (Oracle ASM) zu pushen. Andere Optionen, wie z.B. vom Dateisystem zu Oracle Automatic Storage Management Cluster File System oder von Oracle ASM zu Oracle ASM, erfordern Änderungen an den Dateizielparametern und den Parametern für die Konvertierung von Dateinamen.
    @dup.rcv
    Output similar to the following appears:
    
    RMAN> run {
    2> allocate channel prmy1 type disk;
    3> allocate channel prmy2 type disk;
    4> allocate channel prmy3 type disk;
    5> allocate channel prmy4 type disk;
    6> allocate auxiliary channel stby1 type disk;
    7> allocate auxiliary channel stby2 type disk;
    8> allocate auxiliary channel stby type disk;
    9> duplicate target database for standby from active database dorecover
    10> spfile
    11> parameter_value_convert '/u02/app/oracle/oradata/source_db_name','+DATA'
    12> Set CLUSTER_DATABASE='FALSE'
    13> set db_unique_name='<target_db_unique_name>'
    14> set db_create_file_dest='+DATA'
    15> set db_create_online_log_dest_1='+RECO'
    16> set db_recovery_file_dest='+RECO'
    17> set audit_file_dest='/u01/app/oracle/admin/db_name/adump'
    18> set control_files='+DATA','+RECO'
    19> set dg_broker_config_file1='+DATA/<target_db_unique_name>/dr1<target_db_unique_name>.dat'
    20> set dg_broker_config_file2='+RECO/<target_db_unique_name>/dr2<target_db_unique_name>.dat'
    21> set dispatchers='(PROTOCOL=TCP) (SERVICE=<target_db_name>XDB)'
    22> set instance_name='<target_db_name>'
    23> set db_domain='<target_db_domain>'
    24> set db_recovery_file_dest='+RECO'
    25> ;
    26> }

Post- Oracle Recovery Manager Duplizierungsschritte

Nach Abschluss des Duplizierungsvorgangs für Oracle Recovery Manager (Oracle RMAN) müssen Sie diese Bereinigungsaufgaben in der Standbydatenbank (der Zieldatenbank) ausführen.

Kennwortdatei aktualisieren

Aktualisieren Sie die Kennwortdatei wie folgt:

  1. Kennwortdatei zurück in ASM verschieben:
    [oracle@oci_node1 ~]$ cp $ORACLE_HOME/dbs/orapw<oci_node1_oracle_sid> /tmp/orapw<oci_node1_oracle_sid>
  2. Beenden Sie den opc -Benutzer:
    [oracle@oci_node1 ~]$ exit
  3. Zum grid -Benutzer wechseln:
    [opc@oci_node1 ~]$ sudo su - grid
  4. Zum ASMCMD -Prompt wechseln:
    [grid@oci_node1 ~]$ asmcmd
  5. Kopieren Sie das Kennwort in ASMCMD:
    ASMCMD> pwcopy --dbuniquename <oci_db_unique_name> '/tmp/orapw<oci_node1_oracle_sid>' '+DATA'

    Hinweis:

    Der Befehl kann Fehler anzeigen, weil ASM eine andere Version ist als die Datenbank. Die Fehler können ignoriert werden, weil das Registrierungsproblem später in dieser Prozedur behoben wurde.

  6. Navigieren Sie zum Verzeichnis +DATA/<OCI_DB_UNIQUE_NAME>/PASSWORD/, um das in Schritt 9 zu verwendende system_generated_id zu suchen.
    ASMCMD> cd +DATA/<OCI_DB_UNIQUE_NAME>/PASSWORD/ 
    ASMCMD> ls -lt
  7. Beenden Sie ASMCMD und den grid -Benutzer:
    ASMCMD> exit
    [grid@oci_node1 ~]$ exit
  8. ZumOracle-Benutzer wechseln :
    [opc@oci_node1 ~]$ sudo su - oracle
  9. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  10. Ändern Sie die Kennwortdatei im Cluster in ASM:
    [oracle@oci_node1 ~]$ srvctl modify database -d <oci_db_unique_name> -pwfile +DATA/<OCI_DB_UNIQUE_NAME>/PASSWORD/pwd<oci_db_unique_name><system_generated_id>
    [oracle@oci_node1 ~]$ rm $ORACLE_HOME/dbs/orapw<oci_node1_oracle_sid>
Oracle Flashback aktivieren

Sie müssen Oracle Flashback aktivieren.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Melden Sie sich als Eigentümer der Datenbanksoftware oracle an.
    sudo su - oracle
  3. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSOPER -Administratorberechtigung verfügt. Beispiel:
    sqlplus / as sysoper
    Enter password: password
  4. Aktivieren Sie Oracle Flashback.
    ALTER DATABASE FLASHBACK ON;
  5. Melden Sie sich als Benutzer mit SYSDBA -Administratorberechtigung an.
    CONNECT / AS SYSDBA
  6. Legen Sie das Flashback Erhaltungsziel fest.
    ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=120;
SPFile in Oracle Automatic Storage Management verschieben

Sie müssen die Datei spfile in Oracle Automatic Storage Management verschieben.

  1. Verwenden Sie SSH, um sich bei dem Standbydatenbank- (Zieldatenbank-) Server anzumelden.
  2. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSOPER -Administratorberechtigung verfügt.
  3. Erstellen und verschieben Sie die Datei spfile in Oracle Automatic Storage Management.
    1. Erstellen Sie die pfile.
      create pfile='/tmp/init<sid>.ora' from spfile;
    2. Beenden Sie SQL*Plus:
      SQL> exit
    3. Bearbeiten Sie das pfile:
      vi /tmp/init<sid>.ora
    4. Löschen Sie die folgende Zeile aus der Datei:
      *.instance_name=<sid_for_node1>
    5. Fügen Sie die folgenden Zeilen für jeden Knoten hinzu:
      <sid_for_node1>.instance_name='<sid_for_node1>'
      <sid_for_node2>.instance_name='<sid_for_node2>'
    6. Melden Sie sich als Administratorbenutzer bei SQL*Plus an. Beispiel:
      sqlplus sys / as sysdba
      Password: password
    7. Datenbank herunterfahren
      shutdown immediate
    8. Starten Sie die Datenbank im MOUNT -Modus mit der Datei initdb_name.ora neu, die Sie gerade erstellt haben.
      startup mount pfile='/tmp/init<sid>.ora';
    9. Erstellen Sie die Datei spfile.
      create spfile='+DATA' from pfile='/tmp/init<sid>.ora';
  4. Beenden Sie SQL*Plus.
  5. Suchen Sie als grid -Benutzer die Datei spfile unter dem Befehl Oracle Automatic Storage Management mit dem Befehl asmcmd.
    asmcmd
    ASMCMD> cd +DATA/target_db_unique_name/PARAMETERFILE/
    ASMCMD> ls -lt
    Sie sehen eine Anzeige wie die folgende:
    Type           Redund  Striped  Time             Sys  Name
    PARAMETERFILE  UNPROT  COARSE   APR 09 16:00:00  Y    spfile.262.973010033
    Notieren Sie sich den ASM -Namen (spfile.262.973010033), den Sie in der nächsten Aufgabe benötigen.
inittarget_db_name.ora-Datei in spfile-Datei ändern

Sie können die Datei init<sid>.ora ändern, um die Datei spfile zu referenzieren.

  1. Verwenden Sie SSH, um sich bei dem Standbydatenbank- (Zieldatenbank-) Server anzumelden.
  2. Melden Sie sich als Eigentümer der Datenbanksoftware oracle an.
    su - oracle
  3. Führen Sie das Skript oraenv aus, um die Umgebungsvariable $ORACLE_HOME festzulegen.
    . oraenv
  4. Gehen Sie zum Verzeichnis $ORACLE_HOME/dbs.
    cd $ORACLE_HOME/dbs
  5. Stellen Sie sicher, dass die Datei init<sid>.ora in diesem Verzeichnis enthalten ist.
    ls *.ora
  6. Ändern Sie die Datei inittarget_db_name.ora so, dass sie auf die Datei spfile verweist. Beispiel:
    mv spfiletarget_db_name.ora spfiletarget_db_name.ora.stby
    mv init<sid>.ora init<sid>.ora.stby
    echo ''SPFILE='+DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033'' > init<sid>.ora
    cat init<sid>inittarget_db_name.ora--To check the file
    In dieser Ausgabe ist spfile.262.973010033 der Name der Datei, die Sie generiert haben, wenn Sie die spfile-Datei in Oracle Automatic Storage Management in der vorherigen Aufgabe verschoben haben.
    Sie sehen eine Anzeige wie die folgende:
    SPFILE='+DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033'
Standbydatenbank im MOUNT-Modus ändern und starten

Mit dem srvctl können Sie die Standby-Datenbank (die Zieldatenbank) ändern und starten.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Melden Sie sich als Eigentümer der Datenbanksoftware oracle an.
    su - oracle
  3. Führen Sie das oraenv-Skript aus, das die $ ORACLE_HOME -Umgebungsvariable festlegt.
    . oraenv
  4. Verwenden Sie srvctl , um die Standby-Datenbank (die Zieldatenbank) im MOUNT -Modus zu ändern und zu starten. Beispiel:
    srvctl modify database -db target_db_unique_name -role /
    PHYSICAL_STANDBY -s "READ ONLY"  -spfile /
    +DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033
    
    srvctl config database -db target_db_unique_name
  5. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSOPER -Administratorberechtigung verfügt.
    sqlplus / as sysoper
  6. Datenbank herunterfahren,
    SQL*Plus
    SHUTDOWN IMMEDIATE
  7. datenbank im Mount starten
    STARTUP MOUNT
  8. ändern des Parameters cluster_database
    
    alter  system set cluster_database=True  sid='*' scope=spfile;
  9. Datenbank herunterfahren
    SHUTDOWN IMMEDIATE
  10. Beenden Sie SQL*Plus.
    EXIT
  11. Starten Sie die Datenbank im MOUNT -Modus mit srvctl.
    srvctl start database -db target_db_unique_name -o mount
  12. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt.
    sqlplus / as sysdba
  13. Fragen Sie die dynamische V$DATABASE -Ansicht ab, um sicherzustellen, dass sich die Datenbank im MOUNT -Modus befindet.
    SELECT NAME, OPEN_MODE FROM V$DATABASE;
    #Output wird ähnlich wie die Folgende angezeigt:
    NAME              OPEN_MODE
    --------------    ---------
    source_db_name    MOUNTED
Konvertierungsparameter für Datenbank- und Logdateinamen in der Primärdatenbank festlegen

Sie müssen die Konvertierungsparameter für die Datenbank und den Logdateinamen in der Primärdatenbank (der Quelldatenbank) festlegen.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Zum Oracle-Benutzer wechseln:
    sudo su - oracle
  3. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt. Beispiel:
    sqlplus / as sysdba
    Enter password: password
  4. Prüfen Sie den Parameter CONVERT.
    SHOW PARAMETER CONVERT
    Sie sehen eine Anzeige wie die folgende:
    NAME                         TYPE        VALUE
    ------------------------------------ ----------- ------
    db_file_name_convert                 string
    log_file_name_convert                string
    pdb_file_name_convert                string
    Die Spalte VALUE muss leer sein (Null). Wenn ein Wert vorhanden ist, notieren Sie diesen Wert nach Abschluss der Migration. Nach Abschluss der Migration werden diese Werte auf Null gesetzt.
  5. Verwenden Sie die Informationen aus dieser Ausgabe, um denParameter DB_FILE_NAME_CONVERT festzulegen.

    Hinweis:

    In diesem Schritt muss SOURCE_DB_NAME in Großbuchstaben angegeben werden.
    ALTER SYSTEM SET DB_FILE_NAME_CONVERT='+DATA','/u02/app/oracle/oradata/SOURCE_DB_NAME/'' SID='*' SCOPE=SPFILE;
  6. Legen Sie den Parameter LOG_FILE_NAME_CONVERT fest. Beispiel:
    ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='+RECO','/u04/app/oracle/redo/' SID='*' SCOPE=SPFILE;
  7. Starten Sie die Datenbank neu.
    srvctl stop database -db source_db_name
    srvctl start database -db source_db_name
Konvertierungsparameter für Datenbank- und Logdateinamen in der Standbydatenbank festlegen

Sie müssen die Konvertierungsparameter für die Datenbank und den Logdateinamen in der Standbydatenbank (der Zieldatenbank) festlegen.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Zum Oracle-Benutzer wechseln:
    sudo su - oracle
  3. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt. Beispiel:
    sqlplus / as sysdba
    Enter password: password
  4. Prüfen Sie den CONVERT-Parameter.
    SHOW PARAMETER CONVERT
    Sie sehen eine Anzeige wie die folgende:
     NAME                        TYPE        VALUE
    ------------------------------------ ----------- ------
    db_file_name_convert                 string
    log_file_name_convert                string
    pdb_file_name_convert                string
    Die Spalte VALUE muss leer sein (Null). Wenn ein Wert vorhanden ist, notieren Sie diesen Wert nach Abschluss der Migration. Nach Abschluss der Migration werden diese Werte auf Null gesetzt.
  5. Verwenden Sie die Informationen aus dieser Ausgabe, um den Parameter DB_FILE_NAME_CONVERT festzulegen. Beispiel:

    Hinweis:

    In diesem Schritt muss SOURCE_DB_NAME in Großbuchstaben angegeben werden.
    ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/u02/app/oracle/oradata/SOURCE_DB_NAME/','+DATA' SID='*' SCOPE=SPFILE;
  6. Legen Sie den Parameter LOG_FILE_NAME_CONVERT fest. Beispiel:
    ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u04/app/oracle/redo/','+RECO'
    SID='*' SCOPE=SPFILE;
  7. Starten Sie die Datenbank neu.
    srvctl stop database -db target_db_unique_name
    srvctl start database -db target_db_unique_name -o mount

Datenbank mit Oracle Data Guard Broker konfigurieren

Mit dem Utility dbmgrl können Sie die Primärdatenbank (die Quelldatenbank) oder die Standbydatenbank (die Zieldatenbank) mit Oracle Data Guard Broker konfigurieren.

  1. Verwenden Sie SSH, um sich bei der Primärdatenbank (der Quelldatenbank) oder dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Starten Sie das Befehlszeilen-Utility dgmgrl:
    dgmgrl
  3. Melden Sie sich als Benutzer SYS aus dem Primär- oder Standby-Datenbanksystem an. Beispiel: So melden Sie sich bei einer Primärdatenbank an, deren TNS-Name OCIC-ORCL ist:
    connect sys@ocic-orcl
    Enter password: password
  4. Erstellen Sie mit dem Utility dbmgrl die Oracle Data Guard -Konfiguration und die Identität für die Primär- und Standbydatenbanken. Beispiel:
    create configuration configuration_name as primary database is source_db_unique_name connect identifier is OCIC-ORCL; -- Uses the source TNS name
     
    add database target_db_unique_name as connect identifier is OCI-ORCL; --Uses the target TNS name
  5. Aktivieren Sie die Konfiguration.
    enable configuration
  6. Oracle Data Guard -Konfiguration in der Standby-Datenbank anzeigen.
    show configuration
    Sie sehen eine Anzeige wie die folgende:
    Configuration - configuration_name
      Protection Mode: MaxPerformance
      Members:
      source_db_unique_name           - Primary database
        target_db_unique_name         - Physical standby database
    
    Fast-Start Failover: DISABLED
    
    Configuration Status:
    SUCCESS   (status updated 12 seconds ago)

Oracle Data Guard Broker auf der Primärdatenbank und der Standbydatenbank validieren

Mit SQL*Plus können Sie Oracle Data Guard Broker in der Primärdatenbank (der Quelldatenbank) und der Standbydatenbank (der Zieldatenbank) validieren.

Oracle Data Guard Broker auf der Primärdatenbank validieren

Mit SQL*Plus können Sie Oracle Data Guard Broker in der Primärdatenbank (der Quelldatenbank) validieren.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Melden Sie sich als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt. Beispiel: Bei einer Primärdatenbank mit dem TNS-Namen OCIC-ORCL:
    connect sys@ocic-orcl as sysdba
    Enter password: password
  3. Fragen Sie die dynamische V$DATABASE -Ansicht ab.
    SELECT FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, DATAGUARD_BROKER, PROTECTION_MODE FROM V$DATABASE;
    
  4. Sie sehen eine Anzeige wie die folgende:
    
    FORCE_LOGGING                           FLASHBACK_ON       OPEN_MODE
    --------------------------------------- ------------------ -----------
    DATABASE_ROLE    SWITCHOVER_STATUS    DATAGUAR PROTECTION_MODE
    ---------------- -------------------- -------- --------------------
    YES                                     YES                READ WRITE
    PRIMARY          TO STANDBY           ENABLED  MAXIMUM PERFORMANCE
    In der Ausgabe muss DATABASE_ROLE PRIMARY und OPEN_MODE READ WRITE sein.

Oracle Data Guard Broker auf der Standbydatenbank validieren

Mit SQL*Plus können Sie Oracle Data Guard Broker in der Standbydatenbank (der Zieldatenbank) validieren.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Melden Sie sich als Benutzer an, der über die SYSDBA -Administratorberechtigung verfügt.
  3. Fragen Sie die dynamische V$DATABASE -Ansicht ab.
    SELECT FORCE_LOGGING, FLASHBACK_ON,
    OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS,
    DATAGUARD_BROKER, PROTECTION_MODE
    FROM V$DATABASE;
    Sie sehen eine Anzeige wie die folgende:
    FORCE_LOGGING                           FLASHBACK_ON       OPEN_MODE
    --------------------------------------- ------------------ -----------
    DATABASE_ROLE    SWITCHOVER_STATUS    DATAGUAR PROTECTION_MODE
    ---------------- -------------------- -------- --------------------
    YES                                     YES                MOUNTED
    PHYSICAL STANDBY NOT ALLOWED          ENABLED  MAXIMUM PERFORMANCE
    In der Ausgabe muss DATABASE_ROLE als PHYSICAL STANDBY und OPEN_MODE als MOUNTED angezeigt werden.
  4. Prüfen Sie, ob die Oracle Data Guard -Prozesse in der Standby-Datenbank gestartet werden.
    SELECT PROCESS,PID,DELAY_MINS FROM V$MANAGED_STANDBY;
    Sie sehen eine Anzeige wie die folgende:
    PROCESS   PID                      DELAY_MINS
    --------- ------------------------ ----------
    ARCH      9207                              0
    ARCH      9212                              0
    ARCH      9216                              0
    ARCH      9220                              0
    RFS       1065                              0
    RFS       1148                              0
    RFS       1092                              0
    MRP0      972                               0
    RFS       1208                              0
    Die Ausgabe sollte darauf hinweisen, dass die Prozesse mit wenig oder keiner Verzögerung ausgeführt werden. Wenn DELAY_MINS für MRP0 verwendet wird, werden die Datenbanken synchronisiert.
  5. Prüfen Sie den Parameter LOG_ARCHIVE_DEST.
    SHOW PARAMETER LOG_ARCHIVE_DEST_
    Sie sehen eine Anzeige wie die folgende:
    NAME                         TYPE      VALUE
    ---------------------------- --------- -----------------------------
    log_archive_dest_1           string       
                                           location=USE_DB_RECOVERY_FILE_
                                           DEST, valid_for=(ALL_LOGFILES,
                                           ALL_ROLES)
    log_archive_dest_10          string
    log_archive_dest_11          string
    log_archive_dest_12          string
    log_archive_dest_13          string
    log_archive_dest_14          string
    log_archive_dest_15          string
    ...
    log_archive_dest_2           string    service="oci-orcl", ASYNC
                                           NOAF FIRM delay=0 optional
                                           compression=disable
                                           max_failure=0 max_connections
                                           =1 reopen=300 db_unique_name=
                                           "source_db_unique_name"
                                           net_timeout=30, valid_for=
                                           (online_logfile,all_roles)
    ...
    
    Die Ausgabe muss der Ausgabe für log_archive_dest_2 entsprechen, wobei der Service auf die Standbydatenbank (die Zieldatenbank) zeigt, in diesem Beispiel oci-orcl.
  6. Prüfen Sie den Parameter LOG_ARCHIVE_CONFIG.
    SHOW PARAMETER LOG_ARCHIVE_CONFIG#
    Sie sehen eine Anzeige wie die folgende:
    
    NAME                         TYPE      VALUE
    ---------------------------- --------- -----------------------------------------------------------
    log_archive_config           string    dg_config=(source_db_unique_name,target_db_unique_name)
    
  7. Prüfen Sie den Parameter FAL_SERVER.
    SHOW PARAMETER FAL_SERVER
    Sie sehen eine Anzeige wie die folgende:
    
    NAME                        TYPE      VALUE
    --------------------------- --------- ----------
    fal_server                  string    <tns_entry_of_primary>  
  8. Prüfen Sie den Parameter LOG_ARCHIVE_FORMAT.
    SHOW PARAMETER LOG_ARCHIVE_FORMAT
    Sie sehen eine Anzeige wie die folgende:
    
    NAME                        TYPE      VALUE
    --------------------------- --------- --------------
    log_archive_format          string    %t_%s_%r.dbf

Validierung für Primärdatenbank abschließen

Mit dgmrgl können Sie die Oracle Data Guard Broker-Validierung in der Primärdatenbank (der Quelldatenbank) abschließen.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Wiederholen Sie die Schritte 5 über 8 im Thema Validieren von Oracle Data Guard Broker auf der Standbydatenbank auf der Primärdatenbank (der Quelldatenbank).
  3. Starten Sie das Befehlszeilen-Utility dgmgrl:
    dgmgrl
  4. Melden Sie sich als Benutzer SYS aus dem Primär- oder Standby-Datenbanksystem an. Beispiel: So melden Sie sich bei einer Primärdatenbank an, deren TNS-Name OCIC-ORCL ist:
    connect sys@primary_db_tnsnames_name
    Enter password: password
  5. Prüfen Sie die Oracle Data Guard -Konfiguration.
    show configuration verbose
    Sie sehen eine Anzeige wie die folgende:
    Configuration - configuration_name
     
      Protection Mode: MaxPerformance
      Members:
      source_db_unique_name           - Primary database
        target_db_unique_name         - Physical standby database
     
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
     
    Fast-Start Failover: DISABLED
  6. Prüfen Sie den Status der Standby-Datenbank (Zieldatenbank). Beispiel:
    show database verbose target_db_unique_name
    Nachdem Sie diese Schritte ausgeführt haben, müssen Sie testen, ob die Oracle Data Guard -Konfiguration wie erwartet funktioniert, indem Sie Switchover-Vorgänge in beiden Richtungen ausführen.

Migration ausführen

Um die Migration abzuschließen, müssen Sie einen Switchover-Vorgang von der Primärdatenbank (der Quelldatenbank) zur Standbydatenbank (der Zieldatenbank) durchführen.

  1. Verwenden Sie SSH, um sich bei dem Primärdatenbank- (Quelldatenbank) Server anzumelden.
  2. Starten Sie das dgmgrl-Befehlszeilenutility.
    dgmgrl 
  3. Melden Sie sich als Benutzer SYS aus dem Primär- oder Standby-Datenbanksystem an. Beispiel: Melden Sie sich bei einer Primärdatenbank an, deren TNS-Name OCIC-ORCL ist:.
    connect sys@ocic-orcl
    Enter password: password
  4. Prüfen Sie die Konfiguration.
    show configuration verbose
  5. Prüfen Sie In der Verbose-Ausgabe der Konfiguration, ob die Einstellung für den Datenbankstatus SUCCESS lautet.
  6. Prüfen Sie die Konfiguration für die Primärdatenbank (die Quelldatenbank).
    show database verbose source_db_unique_name
    Die Verbose-Ausgabe der Datenbank sollte zeigen, dass die Rolle "Primär" und die Einstellung für StaticConnectIdentifier identisch mit DGConnectIdentifier. ist
  7. Führen Sie einen Switchover-Vorgang an die Standby-Datenbank (die Zieldatenbank) aus.
    switchover to target_db_unique_name
    Die Ausgabe sollte darauf hinweisen, dass der Switchover-Vorgang zwischen den beiden Datenbanken erfolgt.
  8. Führen Sie "Konfiguration anzeigen" aus, um zu prüfen, ob keine Fehler oder Warnungen vorhanden sind:
    show configuration;

Schritte nach der Migration

Nachdem Sie die Migration einer Oracle -Datenbank von einem Oracle Cloud Infrastructure Compute Classic -Server zu einem Oracle Cloud Infrastructure -Server abgeschlossen haben, der ein Virtual Machine-Datenbanksystem verwendet, müssen Sie die Migration validieren und die Konfiguration dann aus der Primärdatenbank (der Quelldatenbank) entfernen.

Oracle Data Guard -Konfiguration auf der Standbydatenbank testen

In dieser Phase ist die Zieldatenbank nun die Primärdatenbank. Die Quelldatenbank ist jetzt die Standby-Datenbank.

Sie können die Oracle Data Guard -Verbindung auf der Zieldatenbank testen, indem Sie einen Switchover-Vorgang mit der Quelldatenbank ausführen. Dieser Switchover-Vorgang macht die Zieldatenbank wieder die Standbyrolle. Dieser Test soll erwiesen, dass Sie zur ursprünglichen Konfiguration zurückkehren können, falls die Zieldatenbank nicht funktionsfähig ist.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden.
  2. Starten Sie das Utility dgmgrl. Beispiel:
    dgmgrl sys@target_db
    Enter password: password
  3. Führen Sie einen Switchover-Vorgang zu der Quelldatenbank durch, wodurch die Zieldatenbank die Standbyrolle übernimmt.
    switchover to source_db_unique_name;
    Die Ausgabe sollte darauf hinweisen, dass der Switchover-Vorgang zwischen den beiden Datenbanken erfolgt.
  4. (Optional) Um Änderungen an der neuen Standby-Datenbank zu verhindern, bis die neue Primärdatenbank voll funktionsfähig ist, deaktivieren Sie das Feature Redo Apply vorübergehend.
    edit database source_db_unique_name set state = 'APPLY-OFF';
    Wenn Sie einen anderen Switchover-Vorgang ausführen, sodass die Zieldatenbank jetzt die Standby-Datenbank ist, können Sie einen APPLY-OFF -Vorgang ausführen, um zu verhindern, dass die Quelldatenbank aktualisiert wird. Dadurch kann die Zieldatenbank in den Service geschrieben werden. Die Quelldatenbank wird im Falle eines logischen Fehlers in der neuen Konfiguration als Point-in-Time Backup beibehalten.
  5. (Optional) So starten Sie die Funktion zum Anwenden neu:
    edit database source_db_unique_name set state = 'APPLY-ON';
  6. Beenden Sie dgmgrl.
    exit
  7. Führen Sie einen Switchover-Vorgang zu der Zieldatenbank aus, wodurch die Standbydatenbank zur Quelldatenbank wird.
    switchover to target_db_unique_name;
    Die Ausgabe sollte darauf hinweisen, dass der Switchover-Vorgang zwischen den beiden Datenbanken erfolgt.
  8. Testen Sie die Verbindung mit der neuen Primärdatenbank. Beispiel: Stellen Sie nach dem Exportieren des eindeutigen Zielnamens eine Verbindung als Benutzer SYS her, und wählen Sie einen verschlüsselten Tablespace aus. In diesem Beispiel wird die Tabelle HR.EMPLOYEES verschlüsselt.
    exit
  9. Testen Sie die Verbindung mit der neuen Primärdatenbank. Beispiel: Stellen Sie nach dem Exportieren des eindeutigen Zielnamens eine Verbindung als Benutzer SYS her, und wählen Sie aus einem verschlüsselten Tablespace aus. In diesem Beispiel wird die Tabelle HR.EMPLOYEES verschlüsselt.
    export ORACLE_UNQNAME=target_db_unique_name
     
    sqlplus sys@target_TNS_name
    Password: password
     
    SQL> ALTER SESSION SET CONTAINER = PDB1;
    SQL> SELECT * FROM HR.EMPLOYEES;
     
    SQL> EXIT

Standbydatenbank bereinigen

Nachdem Sie die Migration abgeschlossen und getestet haben, können Sie die Oracle Data Guard -Konfiguration aus der Standby-Datenbank (der Zieldatenbank) entfernen. Sie müssen die ursprüngliche Quelldatenbank nicht entfernen. In diesem Stadium ist die Standbydatenbank die neue Quelldatenbank.

  1. Verwenden Sie SSH, um sich bei dem Standby-Server (der Zieldatenbank) anzumelden und sich bei Oracle Data Guard dgmgrl utility anzumelden.
  2. Prüfen Sie die Konfiguration.
    show configuration
  3. Wenn Protection Mode: MaxPerformance in der Konfiguration nicht angezeigt wird, legen Sie Oracle Data Guard fest, um den MaxPerformance -Schutzmodus zu verwenden.
    edit configuration set protection mode as maxperformance
  4. Deaktivieren Sie die Konfiguration, und entfernen Sie sie.
    edit database source_db_unique_name set state = 'APPLY-OFF';
     
    disable configuration;
     
    remove configuration;
     
    exit
  5. Melden Sie sich bei der Datenbankinstanz als Benutzer an, der über die SYSDBA -Administratorberechtigungen verfügt. Beispiel:
    sqlplus / as sysdba
  6. Prüfen Sie die Parameter DG_BROKER_CONFIG_FILE.
    SHOW PARAMETER DB_BROKER_CONFIG_FILE
    In der Ausgabe müssen die verknüpften Daten und Recovery-Dateien für diese Konfiguration aufgeführt werden, im Allgemeinen dg_broker_config_file1 und dg_broker_config_file2.
  7. Starten Sie ein weiteres Terminalfenster, und melden Sie sich als Grid-Benutzer bei asmcmd an.
  8. Entfernen Sie die Oracle Data Guard -Konfigurationsdateien, die aufgeführt wurden, als Sie die DG_BROKER_CONFIG_FILE -Parameter geprüft haben.
  9. Kehren Sie zu dem Fenster zurück, in dem SQL*Plus ausgeführt wird.
  10. Führen Sie die folgenden ALTER SYSTEM -Anweisungen aus:
    ALTER SYSTEM SET DG_BROKER_START=FALSE SID='*' SCOPE=BOTH;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='' SID='*' SCOPE=SPFILE;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='' SID='*' SCOPE=SPFILE;
    ALTER SYSTEM RESET LOG_ARCHIVE_CONFIG SID='*' SCOPE=SPFILE;
  11. Prüfen Sie die folgenden Parameter:
    SHOW PARAMETER DB_FILE_NAME_CONVERT
    SHOW PARAMETER LOG_FILE_NAME_CONVERT
    SHOW PARAMETER LOG_ARCHIVE_DEST
    SHOW PARAMETER LOG_ARCHIVE_DEST_STATE
    SHOW PARAMETER STANDBY_ARCHIVE_DEST
    SHOW PARAMETER FAL
  12. Wenn einer der vorangehenden Parameter festgelegt ist, setzen Sie die Parameter auf leere Werte zurück. Beispiel: bei STANDBY_ARCHIVE_DEST :
    ALTER SYSTEM SET STANDBY_ARCHIVE_DEST='' SID='*' SCOPE=SPFILE;
  13. Starten Sie die Datenbank neu.
    SHUTDOWN IMMEDIATE
    STARTUP
  14. Löschen Sie die Standby-Logs aus der Primärdatenbank (der Quelldatenbank).
    1. Suchen Sie die Gruppennummern für die Redo-Logs der Standbydatenbank, die sich auf der neuen Primärdatenbank befinden (die früher als die Zieldatenbank).
      SELECT GROUP# FROM V$STANDBY_LOG;Output similar to the following appears:    GROUP#
      ----------
               5
               6
               7
               8
               9
    2. Entfernen Sie die Standby-Logs. Beispiel:
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 8;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 9;
  15. (Optional) Ändern Sie die Parameter DB_BLOCK_CHECKSUM und DB_BLOCK_CHECKING.
    Die Standardwerte sind DB_BLOCK_CHECKSUM=TYPICAL und DB_BLOCK_CHECKING=FALSE.
  16. Beenden Sie SQL*Plus.
    EXIT