構成の完了

Oracle Data Guardを構成し、スタンバイ・データベースを登録し、オンプレミス・データベース・パスワードとスタンバイ・データベース・パスワードを同期します。

Oracle Data Guard Brokerの構成

プライマリ・データベースおよびスタンバイ・データベースでdg_broker_config_fileパラメータを有効にして、Oracle Data Guardを構成します。Oracle Automatic Storage Management (Oracle ASM)の場合は、ブローカ構成ファイルを別のディスク・グループに配置します。Oracle Real Application Clusters (Oracle RAC)の場合、ブローカ構成ファイルは共有記憶域に存在する必要があります。

  1. オンプレミス・データベース・ホストのdg_broker_start値を確認します。falseに設定する必要があります。
    SQL> show parameter dg_broker_start;
    出力は次のようになります。
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. スタンバイOracle Database Exadata Cloud Serviceで、Oracle Data Guard構成ファイルを確認します。
    SQL> show parameter dg_broker_config_file1;
    出力例を次に示します。
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1               string       /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr1DB1_phx3g7.dat
    SQL> show parameter dg_broker_config_file2;
    出力例を次に示します。
    NAME                                  TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr2DB1_phx3g7.dat
  3. データファイルを表示してから、ファイルを格納する場所に変更します。たとえば、Oracle ASM、Oracle RAC、デバイスなどです。
    SQL> select name from v$datafile;
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1_PHX3G7/dr1DB1_phx3g7.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1_PHX3G7/dr2DB1_phx3g7.dat';
  4. プライマリのオンプレミスOracle Exadata Database Machineで、Oracle Data Guard構成ファイルを確認します。
    SQL> show parameter dg_broker_config_file1;
    出力例を次に示します。
    NAME      TYPE      VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1             string        /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1db1.dat.dat
    SQL> show parameter dg_broker_config_file2;
    次に、出力例を示します。
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2db1.dat
  5. データファイルを表示してから、ファイルを格納する場所に変更します。
    SQL> select name from v$datafile;
    次に、出力例を示します。
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
    次のコマンドを実行して、構成ファイルの場所を変更します。
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
    SQL> alter system set dg_broker_start=false;
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
  6. プライマリのオンプレミスOracle Exadata Database Machineで、Oracle Data Guard Brokerプロセスを開始します。
    SQL> alter system set dg_broker_start=true;
    SQL> show parameter dg_broker_start 
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 
  7. スタンバイ・データベースでOracle Data Guard Brokerプロセスを起動します。
    SQL> alter system set dg_broker_start=true; 
    SQL> show parameter dg_broker_start
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 

スタンバイ・データベースの登録

Oracle Data Guardコマンドライン・インタフェース(DGMGRL)を使用して、スタンバイ・データベース・プロファイルをプライマリのオンプレミス・ホストのブローカ構成に登録または追加します。

  1. プライマリ・ホストにsysとしてログインします。
    $ dgmgrl sys/sys password@net service name for primary database
  2. プライマリ・データベース名を使用する構成を作成します。
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
    例:
    CREATE CONFIGURATION OnPremExaDR AS PRIMARY DATABASE IS DB1 CONNECT IDENTIFIER IS DB1;
  3. スタンバイ・データベースを追加する。
    識別子が、大文字と小文字を含むサービス名と同じであることを確認してください。
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
    例:
    ADD DATABASE DB1_PHX3G7 AS CONNECT IDENTIFIER IS DB1_phx3g7 MAINTAINED AS PHYSICAL;
    ORA-16698エラー・メッセージが表示された場合は、識別子がサービス名と同じであることを確認します。

    エラー: ORA-16698:メンバーにSERVICE属性が設定されたLOG_ARCHIVE_DEST_nパラメータがあります

  4. ログ・アーカイブ先の状態を変更します。
    SQL> alter system set log_archive_dest_state_10='DEFER';
    SQL> alter system set log_archive_dest_10='';
  5. ログ・アーカイブ先を確認してください。
    SQL> show parameter log_archive_dest;
    NAME                                TYPE           VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DB1_PHX3G7
    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
    
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string     SERVICE=DB1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB1
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
    log_archive_dest_23                  string
  6. 構成を有効にします。
    DGMGRL> enable configuration;
  7. 構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-16532: Oracle Data Guard broker configuration does not 
    exist
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 21 seconds ago)
  8. スタンバイOracle Database Exadata Cloud Serviceで、ログインして構成を確認します。
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    出力は、次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 43 seconds ago

オンプレミスからOCIへのREDOログ・ファイルのコピー

redoログ・ファイルおよびその他のデータベース・ファイルをオンプレミス・データベースからOracle Cloud Infrastructure (OCI)インスタンスにコピーします。

  1. オンプレミス・データベース・ファイルを表示します。
    select name from v$datafile;
    出力は次のようになります:
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
  2. オンプレミス・データ・ファイルの各グループのサイズを表示します。
    select bytes, group# from v$log;
    出力は次のようになります:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  3. オンプレミス・データ・ファイルのredoログを表示します。
    select member from v$logfile;
    出力は次のようになります:
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
  4. redoログごとにスタンバイ・ログ・ファイル・グループを追加します。
    たとえば、redoログ・ファイルが3つある場合は、3つのスタンバイ・ログ・ファイル・グループを追加します。
    SQL> 
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  5. ログ・ファイルのメンバーを表示します。
    SQL> select member from v$logfile;
    出力は次のようになります。
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
    +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
    +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
    +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
    +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
    +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  6. ログ・ファイルのグループ番号とメンバーを表示します。
    SQL> select group#,member from v$logfile;
    出力は次のようになります。
    GROUP#                        MEMBER
    ------------      --------------------------------------------------
     2                +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
     2                +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
     1                +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
     1                +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
     5                +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
     3                +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
     3                +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
     4                +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
     4                +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
     5                +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
     6                +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
     6                +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
     7                +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
     7                +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  7. Oracle Data Guardで構成を表示します。
    DGMGRL> show configuration
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
               WARNING   (status updated 8 seconds ago)
  8. スタンバイOracle Database Exadata Cloud Serviceで、REDOログを表示します。
    select member from v$logfile;
    出力は次のようになります。
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  9. sysユーザー名とパスワードを使用して、スタンバイOracle Database Exadata Cloud Serviceデータベース・インスタンスのOracle Data Guardコマンドライン・インタフェース(DGMGRL)セッションにログインします。
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
  10. OCIでスタンバイ・データベースの構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - OnPremDr
    Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 38 seconds ago)
  11. OCIでスタンバイ・データベース・インスタンスを編集し、状態をapply-offに設定します。コマンドが成功したら、コマンドライン・インタフェースを終了します。
    DGMGRL> edit database DB1_phx3g7 set state=apply-off;
    DGMGRL> exit
  12. OCIのスタンバイ・データベース・インスタンスにsysdbaとしてログインします。
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
  13. ログ・ファイルのグループ番号とメンバーを表示します。
    SQL> select group#,member from v$logfile;
    出力は次のようになります。
        
    GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  14. 各グループのサイズを表示します。
    select bytes, group# from v$log;
    出力は次のようになります。
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  15. スタンバイ・ログ・ファイル・グループをOCIのデータベースに追加します。
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
    
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  16. ログ・ファイルのグループ番号とメンバーを表示します。
    SQL> select group#,member from v$logfile;
    出力は次のようになります。
        GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
     5
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_5.358.1063813749
     5
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_5.256.1063813749
     6
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_6.359.1063813761
     6
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_6.262.1063813761
     7
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_7.360.1063813773
     7
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_7.300.1063813773
  17. スタンバイOCIデータベース・インスタンスで、sysユーザー名およびパスワードを使用してOracle Data Guardコマンドライン・インタフェース(DGMGRL)セッションにログインします。
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
  18. OCIでスタンバイ・データベース・インスタンスを編集し、状態をapply-onに設定します。
    DGMGRL> edit database db1_phx3g7 set state=apply-on;
  19. OCIでスタンバイ・データベース・インスタンスを編集し、転送状態をtransport-onに設定して、コマンドライン・インタフェースを終了します。コマンドが成功したら、DGMGRLを終了します。
    DGMGRL> edit database DB1 set state=transport-on;
    DGMGRL> exit
  20. OCIでスタンバイ・データベースのスタンバイ・ログ・ファイルを表示してスタンバイを検証します。
    SQL> select * from v$logfile where type='STANDBY';
  21. OCIでスタンバイ・データベースのREDOログ・ファイルを表示します。
    SQL> select member from v$logfile where type != 'STANDBY';
    出力は次のようになります。
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  22. 管理スタンバイ・データベースをリカバリします。
    SQL> recover managed standby database cancel;
    出力は次のようになります。
    Media recovery complete
  23. convertパラメータを使用してファイルを表示します。
    SQL> show parameter convert;
    出力は次のようになります。
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		    string       DB1, DB1_phx3g7
    log_file_name_convert		   string       DB1, DB1_phx3g7
    pdb_file_name_convert		   string
  24. データベース・ファイルを表示します。
    select name from v$datafile;
    出力は次のようになります。
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
  25. Oracle Data Guardアーカイブの詳細を表示します。
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    出力は次のようになります。
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    RFS ping			     1	     0 IDLE
    RFS ping			     2	    62 IDLE
    RFS async		           2	    62 RECEIVING
    broker instance worker            0	     0 IDLE
    broker worker			0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive local			0	     0 IDLE
    redo transport timer		0	     0 IDLE
    gap manager			  0	     0 IDLE
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    broker monitor		      0	     0 IDLE
    broker net worker		   0 	    0 IDLE
    redo transport monitor	     0	     0 IDLE
    log writer			   0	     0 IDLE
    RFS async	                  0	   187 RECEIVING
    16 rows selected.
  26. ログ・ファイルを使用して管理スタンバイ・データベースのリカバリを無効にします。
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. destinationパラメータを使用してファイルを表示し、確認します。
    SQL>show parameter dest;