機械翻訳について

7 シナリオ: DCSスタックでのOracle Data Guardの手動構成

このシナリオでは、DCSスタックのOracle Database ApplianceでのOracle Data Guardの設定について説明します。

環境

Oracle Database Applianceを使用した後続のData Guard設定例で使用されるプライマリおよびスタンバイ・データベース環境のトポロジの理解。

manual_dg_configuration.pngの説明は以下のとおりです
図manual_dg_configuration.pngの説明
コンポーネント プライマリOracle Database Appliance スタンバイOracle Database Appliance
アプライアンス名 appliance#1 appliance#2
ホスト名 proddb1, proddb2 stbydb1, stbydb2
データベース名 chicago chicago
一意のデータベース名 chicago boston
インスタンス名 chicago1, chicago2 chicago1, chicago2
SCAN名およびIP proddb-scan (10.1.27.2, 10.1.27.3) stbydb-scan (10.1.27.4, 10.1.27.5)
Grid Infrastructureソフトウェアのインストール /u01/app/19.21.0.0/grid /u01/app/19.21.0.0/grid
Oracle Databaseソフトウェアのインストール /u01/app/odaorahome/oracle/product/19.0.0.0/db_home1 /u01/app/odaorahome/oracle/product/19.0.0.0/db_home1
データベース・ストレージ ASM ASM
ARCHIVELOGモード はい はい
FORCE LOGGINGモード はい はい

Oracle Data Guardの構成

Oracle Data Guardを手動で構成するステップを理解します。Oracle Data GuardをOracle Data Guard Brokerで構成することをお薦めします。

次のステップを実行します。
  1. スタンバイREDOログを作成します。
    スタンバイREDOログ(SRL)は、プライマリ・データベースからREDOデータをリアルタイムで受信し、転送と適用ラグを最小限に抑えます。 Oracleでは、プライマリ・スタンバイ設定の前に、スタンバイREDOログをプライマリ・データベースに作成して、Data Guardロール遷移後にREDOデータをすぐに受信できるようにすることをお薦めします。 プライマリ・データベースにスタンバイREDOログ(SRL)を作成します。 スタンバイREDOログの各スレッドには、オンラインREDOログの対応するスレッドよりも1つ以上のREDOログ・グループが必要です。 たとえば:
    SQL> alter database add standby logfile thread 1 group 7 size 1G, group 8 size 1G, group 9 size 1G; 
    SQL> alter database add standby logfile thread 2 group 11 size 1G,group 12 size 1G, group 13 size 1G;
    オンラインREDOログの数とそのサイズを確認するには、次の問合せを使用します:
    SQL> select thread#, group#, bytes/1024/1024/1024 SIZE_IN_GB, status from v$log; 

    スタンバイREDOログのサイズは、REDOログのサイズと一致する必要があります。 Oracle Database Applianceプラットフォームでは、スタンバイREDOログが、ソリッド・ステート・ディスクにあるREDOディスク・グループに作成されている必要があります。 Oracle Database Appliance Small/Medium/LargeおよびX8-2 HAモデルでは、REDOディスク・グループがないため、制御ファイルおよびオンライン・ログはRECOディスク・グループに格納されます。 スタンバイREDOログの各ログ・ファイルのサイズおよびログ・グループの数を検証するには、次の問合せを使用します:

     SQL> select group#, thread#, bytes/1024/1024/1024 SIZE_IN_GB from v$standby_log;
  2. プライマリ・データベースでアーカイブ・ログ・モードを有効にします。

    情報:

    アーカイブは、アクティブ・データベースのREDOログが循環方式で上書きされる前に、REDO情報をアーカイブ・ファイルの形式で保存および保護するプロセスです。 Oracle Database Applianceで作成されたデータベースのアーカイブはデフォルトで有効になっています。
    プライマリ・データベースがARCHIVELOGモードで実行されていることを確認します。
    SQL> archive log list
    プライマリ・データベースがARCHIVELOGモードで実行されていない場合は、次のようにARCHIVELOGモードを有効にします:
    1. Oracle Database Applianceで両方のインスタンスを停止します。
      $ srvctl stop database -d chicago
    2. 排他モードで1つのインスタンスを起動してマウントします。
      SQL> startup mount exclusive;
    3. アーカイブをオンにします。
      SQL> alter database archivelog;
    4. インスタンスを停止します。
      SQL> shutdown immediate;
    5. データベースを再起動します。
      $ srvctl start database -d chicago
  3. FORCE LOGGINGモードを有効にします。
    強制ロギングを使用すると、NOLOGGING属性で実行されるデータベース操作を取得できます。 これにより、スタンバイ・データベースの整合性が保証されます。 プライマリ・データベースでFORCE LOGGINGがすでに有効になっているかどうかを確認します。
    SQL> select force_logging from v$database;
    FORCE LOGGINGが有効になっていない場合は、次のコマンドを使用して有効にします:
    SQL> alter database force logging;
  4. フラッシュバック・データベース機能を構成します。
    Oracle Flashback Database機能は、不完全なデータベース・リカバリの実行に代わる高速な機能を提供します。 フラッシュバック・データベース機能はオプションですが、フェイルオーバー後に古いプライマリ・データベースを迅速に回復する場合に非常に役立ちます。 したがって、スタンバイへのフェイルオーバーを実行して古いプライマリを修復できる場合、古いプライマリ・データベースをスタンバイ・データベースとして再構築する必要はありませんが、フラッシュバックして、その時点からOracle Data Guardを再同期させるだけです。 プライマリ・データベースでフラッシュバック・データベースが有効になっているかどうかを確認し、必要に応じて有効にします。
    SQL> select flashback_on from v$database; 
    SQL> alter database flashback on;
    フラッシュバック・データベースを有効にするには、Fast Recovery Area (RECOディスク・グループ)で追加の領域消費が必要であることに注意してください。 フラッシュバック・ログで使用される領域は、パラメータDB_FLASHBACK_RETENTION_TARGETを目的の値に設定することで制御できます。 この値は分単位で指定されます。 たとえば:
    SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=120 scope=both sid='*';
  5. スタンバイ・ファイル管理を有効にします。
    プライマリ・データベースでデータファイルを追加または削除する場合、対応するアクションもスタンバイ・データベースで自動的に実行する必要があります。 この操作は、自動スタンバイ・ファイル管理を使用して有効にできます。
    SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both sid='*';
  6. データベース・ホームが存在しない場合は、スタンバイに作成します。 たとえば:
    [root@stbydb1]# odacli create-dbhome -v 19.14.0.0.220118

    スタンバイのデータベース・ホーム・バージョンは、プライマリのデータベース・ホーム・バージョンと同じである必要があります。

  7. TNSエントリおよびリスナーを設定します。
    Oracle Netサービス名は、データベース間でのREDO転送を有効にするように構成する必要があります。 tnsnames.oraファイルを更新して、プライマリ・データベースとスタンバイ・データベースの両方のTNS別名を含めます。 Oracle Database Applianceでは、tnsnames.oraファイルはOracleデータベース・ホームのnetwork/adminディレクトリにあります。
    $ vi $ORACLE_HOME/network/admin/tnsnames.ora
    Primary
    chicago = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = proddb-scan)(PORT = 1521))
     (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chicago.oracle.com) 
      ) 
     )
    
    boston = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = stbydb-scan)(PORT = 1521)) 
     (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = boston.oracle.com) 
      ) 
     ) 
    Standby
    chicago = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = proddb-scan)(PORT = 1521)) 
     (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chicago.oracle.com) 
      ) 
     ) 
    boston = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = stbydb-scan)(PORT = 1521)) 
    (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = boston.oracle.com) 
     ) )
  8. REDO転送サービスを遅延モードに設定します。 Oracle Data Guardブローカが構成されている場合は、このステップは必要ありません。
    Oracle Data Guard REDO転送メカニズムでは、Oracle Net接続を使用してデータベース間でREDOを送信します。 REDO転送を有効にするには、LOG_ARCHIVE_DEST_nパラメータを設定します。 たとえば、次の設定はログの送付を有効にし、LGWRベースの転送を非同期モードで使用します。
    SQL> alter system set log_archive_dest_2='SERVICE=boston LGWR ASYNC REGISTER VALID_FOR=(online_logfile,primary_role) 
    REOPEN=60 DB_UNIQUE_NAME=boston' scope=both sid='*'; 
    SQL> alter system set log_archive_dest_state_2='defer' scope=both sid='*';

    REDOログ転送オプションの詳細は、「Oracle Data Guard概念および管理ガイド」を参照してください。

  9. アーカイブ・ログ・サーバーのフェッチを設定します。 Oracle Data Guardブローカが構成されている場合は、このステップは必要ありません。
    データベースがスタンバイ・ロールで、プライマリが欠落しているログ・ファイルを送信できない場合、スタンバイ・データベースはFAL_SERVER設定を使用して、欠落しているログ・ファイルをプルできます。 FAL_SERVERパラメータは、Oracle Netサービス名を使用します。
    SQL> alter system set FAL_SERVER=boston scope=both sid='*';
  10. プライマリ・データベースのspfileからpfileを作成します。
    [oracle@proddb1]$ export ORACLE_HOME=u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 
    [oracle@proddb1]$ export ORACLE_SID=chicago1 
    [oracle@proddb1]$ export PATH=$ORACLE_HOME/bin:$PATH 
    [oracle@proddb1]$ sqlplus / as sysdba 
    SQL> create pfile='/tmp/chicago.pfile' from spfile;
  11. プライマリおよびスタンバイのパラメータを追加または変更します。

    プライマリ:

    *.db_block_checking=FULL 
    *.db_block_checksum=FULL 
    *.db_lost_write_protect=TYPICAL 
    *.db_unique_name=chicago 
    *.listener_networks='((NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=primary node0 vip) (PORT=1521)))))','((NAME=net1)(LOCAL_LISTENER=( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=primary node1 vip)(PORT=1521) ))))','((NAME=net1)(REMOTE_LISTENER=primary scan name:1521))'
    *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) MAX_FAILURE=1 REOPEN=5 DB_UNIQUE_NAME=chicago ALTERNATE=log_archive_dest_10'
    *.log_archive_dest_10='LOCATION=+DATA/chicago/arc10 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago ALTERNATE=log_archive_dest_1'
    # if DB is TDE enabled
    *.wallet_root='+DATA/CHICAGO'

    スタンバイ:

    *.audit_file_dest='/u01/app/oracle/admin/boston/adump' 
    *.db_block_checking=FULL 
    *.db_block_checksum=FULL 
    *.db_lost_write_protect=TYPICAL 
    *.db_unique_name=boston 
    *.listener_networks='((NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=standby node0 vip) (PORT=1521)))))','((NAME=net1)(LOCAL_LISTENER=( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=standby node1 vip)(PORT=1521) ))))','((NAME=net1)(REMOTE_LISTENER=standby scan name:1521))' 
    *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) MAX_FAILURE=1 REOPEN=5 DB_UNIQUE_NAME=boston ALTERNATE=log_archive_dest_10'
    *.log_archive_dest_10='LOCATION=+DATA/boston/arc10 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=boston ALTERNATE=log_archive_dest_1' 
    # if DB is TDE enabled
    *.wallet_root='+DATA/BOSTON'

    データ保護パラメータを設定します。 「My Oracle Supportノート1302539.1 - 破損検出、予防および自動修復のベスト・プラクティス - ODAのData Guard構成Small/Medium/Large」を参照してください。Oracle Database Appliance X8-2-HAモデルでは、REDOディスク・グループがないため、制御ファイルおよびオンライン・ログがRECOディスク・グループに格納されます。 データベースでは、ベア・メタル・システムのOracle Database Applianceリリース19.6から始まるlocal_listenerおよびremote_listenerパラメータのかわりにlistener_networksが使用されます。

  12. スタンバイ上のデータベースのストレージ構造を作成します。
    [root@stbydb1]$ # odacli create-dbstorage -n chicago -u boston
    { 
    "jobId" : "054dac68-9efe-4f0d-a027-5515d46ada8a", 
    "status" : "Created", 
    "message" : null, 
    "reports" : [ ], 
    "createTimestamp" : "October 18, 2021 14:14:11 PM CEST", 
    "resourceList" : [ ], 
    "description" : "Database storage service creation with db name: chicago", 
    "updatedTime" : "October 18, 2021 14:14:11 PM CEST" 
    } 
    [root@stbydb1]# odacli describe-job -i "054dac68-9efe-4f0d-a027-5515d46ada8a"
    Job details 
    ---------------------------------------------------------------- 
    ID: 054dac68-9efe-4f0d-a027-5515d46ada8a 
    Description: Database storage service creation with db name: chicago 
    Status: Success
  13. プライマリ・データベースから最初のスタンバイ・システムにパスワード・ファイルをコピーします。
    [oracle@proddb1]$ srvctl config database -d chicago |grep Password
    Password file: +DATA/CHICAGO/PASSWORD/pwdchicago.386.1086365117
    [oracle@proddb1 ~]$ asmcmd --privilege sysdba
    ASMCMD> pwcopy +DATA/CHICAGO/PASSWORD/pwdchicago.386.1086365117 /tmp/pwdchicago
    copying +DATA/CHICAGO/PASSWORD/pwdchicago.386.1086365117 -> /tmp/pwdchicago
    [oracle@proddb1]$ scp /tmp/pwdchicago oracle@stbydb1:/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1
    /dbs/orapwchicago
  14. 変更したpfileを最初のスタンバイ・ホストにコピーし、スタンバイ・データベースをマウントします。 スタンバイ制御ファイルが作成されるパスを書き留めます。
    [oracle@proddb1]$ scp /tmp/chicago.pfile oracle@stbydb1.oracle.com:/tmp/boston.pfile 
    [oracle@stbydb1]$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 
    [oracle@stbydb1]$ export ORACLE_SID=chicago1 
    [oracle@stbydb1]$ export PATH=$ORACLE_HOME/bin:$PATH 
    [oracle@stbydb1]$ cp /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/orapwboston /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/orapwboston1 
    [oracle@stbydb1]$ rman target / 
    RMAN> startup nomount pfile='/tmp/boston.pfile'; 
    RMAN> restore standby controlfile from service chicago; 
    Starting restore at 19-OCT-21 
    using target database control file 
    instead of recovery catalog 
    allocated channel: ORA_DISK_1 
    channel ORA_DISK_1: SID=483 instance=boston1 device type=DISK 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service chicago 
    channel ORA_DISK_1: restoring control file 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 output file name=+FLASH/BOSTON/CONTROLFILE/current.256.1086380745 
    Finished restore at 19-OCT-21
  15. 制御ファイル・パラメータを更新します。pfile /tmp/chicago.pfileを編集し、control_filesパラメータを置き換えて前の出力からの新しいパスを表示します。 たとえば:
    control_files= ‘+RECO/BOSTON/CONTROLFILE/current.256.1086380745'
  16. 変更されたpfileを使用して、スタンバイ・インスタンスを「指名」モードで起動します。 spfileを作成し、spfileを使用してインスタンスを再起動します。
    [oracle@stbydb1$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1
    [oracle@stbydb1$ export ORACLE_SID=chicago1 
    [oracle@stbydb1$ export PATH=$ORACLE_HOME/bin:$PATH
    [oracle@stbydb1]$ sqlplus / as sysdba
    SQL> create spfile='+DATA/BOSTON/PARAMETERFILE/spfilechicago' from pfile='/tmp/chicago.pfile'; 
    SQL> !echo "spfile='+DATA/BOSTON/PARAMETERFILE/spfilechicago'" > /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/initchicago1.ora
    SQL> !echo "spfile='+DATA/BOSTON/PARAMETERFILE/spfilechicago'" > /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/initchicago2.ora
    SQL> startup mount force;
  17. TDE対応データベースの場合は、プライマリ・システムからTDEウォレットをコピーします:
    1. プライマリでウォレットのバックアップを作成します。 oracleユーザーとしてログインし、空のキーストアを作成します。
       mkdir -p /tmp/backup/
      [oracle@proddb1$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1
      [oracle@proddb1$ export ORACLE_SID=chicago1 
      [oracle@proddb1$ export PATH=$ORACLE_HOME/bin:$PATH
      
      sqlplus / as sysdba
      SQL> administer key management create keystore '/tmp/backup/' identified by "password";
      keystore altered.
    2. データベースのキーストアをファイル・システム・キーストアにマージします。 たとえば:
      SQL>  administer key management merge keystore '+DATA/db_unique_name/tde/' identified by "password" into existing keystore '/tmp/backup/' identified by "password" with backup;
      keystore altered.
    3. スタンバイに新しいキーストアを作成し、プライマリのキーストアをそのキーストアにマージします。
      mkdir /tmp/backup
      scp oracle@primary_db_host:/tmp/backup/* /tmp/backup/
      sqlplus / as sysdba
      
      [oracle@stbydb1$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1
      [oracle@stbydb1$ export ORACLE_SID=boston1 
      [oracle@stbydb1$ export PATH=$ORACLE_HOME/bin:$PATH
      SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE identified by "password";
    4. プライマリから新しく作成されたキーストアにキーストアをマージします。
      SQL> administer key management merge keystore '/tmp/backup/' identified by "password" into existing keystore 
      '+DATA/MILAN/tde' identified by "password" with backup;
    5. 自動ログインを作成します。
      SQL> administer key management create auto_login keystore from keystore identified by "password";
      keystore altered.
  18. 並列性を有効にし、SECTION SIZE=64MBを設定します。 リストア中に並列処理を使用するには、次を実行してサーバー上のCPUの数を確認します:
    [oracle@stbydb1]$ grep -c ^processor /proc/cpuinfo
    スタンバイ・データベースで次のRMAN構成変更を行います。 次の例では、リカバリ・プロセス中に使用するRMAN用に8つの事前構成済チャネルを使用します。
    [oracle@stbydb1]$ rman target / 
    RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK; 
    RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 8;
  19. プライマリ・データベース・サービスからスタンバイ・データベースをリストア1つの大きなファイルをパラレルでバックアップします。RMANの複数セクションのバックアップおよびリストア機能により、バックアップおよびリカバリ速度が向上します。 RMANは作業を複数のチャネルに分割し、各チャネルはファイル内のファイル・セクションに作用します。 256を超えるセクションを生成する小さいセクション・サイズを指定した場合、RMANでは、セクション・サイズが256セクションになる値に増加します。 セクション・サイズ句は、ネットワーク帯域幅、チャネルの数、データ・ファイルのサイズ、アプリケーション・データファイルのサイズなどの様々なファクタによって異なります。
    oracle@stbydb1]$ sqlplus system/welcome1@chicago 
    SQL> select TABLESPACE_NAME, bytes/1024/1024/1024 SIZE_IN_GB from dba_data_files;
    TABLESPACE_NAME SIZE_IN_GB 
    ------------------------------ ---------- 
    UNDOTBS1 .102539063 
    SYSTEM .947265625 
    SYSAUX .91796875 
    UNDOTBS2 .024414063 
    USERS .004882813
    たとえば、スタンバイ・システムで次のコマンドを実行する場合は、64MBのバックアップ・セクション・サイズを指定します。
    [oracle@stbydb1]$ rman target / 
    RMAN> restore database from service chicago section size 64M; 
    RMAM> recover database from service chicago; 
    RMAN> backup spfile;
    ノート: バックアップspfileが失敗した場合は、次のRMANコマンドを使用して、制御ファイルのCONTROLFILE AUTOBACKUP FORMATをリセットします:
    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR
  20. プライマリでのログ送信を有効にします。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
    [oracle@proddb1]$ sqlplus / as sysdba 
    SQL> alter system set log_archive_dest_state_2='enable' scope=both;
  21. スタンバイでフラッシュバック・データベースを有効にし、必要に応じて保持を調整します。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
    SQL> alter database flashback on; 
    SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=120;
  22. スタンバイで管理リカバリを開始します。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
    [oracle@stbydb1]$ sqlplus / as sysdba 
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
  23. スタンバイ・データベースをOracle Clusterwareに登録します。 プライマリとスタンバイのインスタンス名は同じである必要があります。 インスタンス名は、Oracle RACデータベースではdbname[0|1]、単一インスタンス・データベースではdbnameの形式で指定します。
    [oracle@stbydb1]$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 
    [oracle@stbydb1]$ export PATH=$ORACLE_HOME/bin:$PATH
    
    Example with single-instance Oracle Database:
    [oracle@stbydb1]$ srvctl add database -db boston -oraclehome /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 -dbtype SINGLE -instance chicago -node stbydb1 -dbname chicago -diskgroup 'DATA,RECO,FLASH' -role physical_standby -spfile '+DATA/BOSTON/PARAMETERFILE/spfileboston' -startoption mount -acfspath '/u01/app/odaorahome,/u01/app/odaorabase0,/u01/app/odaorabase1'
    
    Example with Oracle RAC Database:
    [oracle@stbydb1]$ srvctl add database -db boston -oraclehome /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 -dbtype RAC -dbname chicago -diskgroup 'DATA,RECO,FLASH' -role physical_standby -spfile '+DATA/BOSTON/PARAMETERFILE/spfileboston' -startoption mount -acfspath '/u01/app/odaorahome,/u01/app/odaorabase0,/u01/app/odaorabase1' 
    [oracle@stbydb1]$ srvctl add instance -db boston -instance chicago1 -node stbydb1 
    [oracle@stbydb1]$ srvctl add instance -db boston -instance chicago2 -node stbydb2
  24. パスワード・ファイルをOracle ASMにコピーし、パスワード・ファイルがOracle ASMを指していることを確認します。
    [oracle@stbydb1]$ export ORACLE_HOME=/u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1 
    [oracle@stbydb1]$ export ORACLE_SID=chicago1 
    [oracle@stbydb1]$ export PATH=$ORACLE_HOME/bin:$PATH 
    [oracle@stbydb1 ~]$ asmcmd --privilege sysdba
    ASMCMD>mkdir +DATA/BOSTON/PASSWORDFILE
    ASMCMD> pwcopy /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/orapwboston +DATA/BOSTON/PASSWORDFILE/pwdboston --dbuniquename boston 
    copying /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_1/dbs/orapwboston -> +DATA/BOSTON/PASSWORDFILE/pwdboston 
    [oracle@stbydb1]$ srvctl config database -db boston|grep Password

    ノート: データベースがOracle ACFSに存在する場合、パスワード・ファイル形式は大/小文字が区別されるため、orapwORACLE_SID形式に従う必要があります。

  25. パラメータを設定し、Oracle Data Guard Broker構成を作成します。
    ノート: フェイルオーバー・ロール遷移後に障害が発生したプライマリを再インスタンス化するには、フラッシュバック・データベースが必要です。 オプションで、プライマリとスタンバイの両方でフラッシュバックを有効にします。 スタンバイ・データベースは、次のようにPostCRスクリプトを使用してフラッシュバックの使用を開始できます:
    [oracle@stbydb1]$ sqlplus / as sysdba 
    alter system set dg_broker_config_file1='+DATA/BOSTON/dr1.dat' scope=both; 
    alter system set dg_broker_config_file2='+DATA/BOSTON/dr2.dat' scope=both; 
    alter system set db_flashback_retention_target=120 scope=spfile; 
    alter database flashback on; 
    alter system set dg_broker_start=true; 
    [oracle@stbydb1]$ srvctl stop database -db boston 
    [oracle@stbydb1]$ srvctl start database -db boston -startoption mount 
    [oracle@stbydb1]$ sqlplus sys/welcome1@chicago as sysdba 
    alter system set dg_broker_config_file1='+DATA/CHICAGO/dr1.dat' scope=both; 
    alter system set dg_broker_config_file2='+DATA/CHICAGO/dr2.dat' scope=both; 
    alter system set dg_broker_start=TRUE;
    Wait 1 min 
    [oracle@stbydb1]$ dgmgrl sys/welcome1@chicago 
    CREATE CONFIGURATION dgconfig AS PRIMARY DATABASE IS CHICAGO CONNECT IDENTIFIER IS CHICAGO; 
    ADD DATABASE BOSTON AS CONNECT IDENTIFIER IS BOSTON ; 
    ENABLE CONFIGURATION
    ALTER DATABASE FLASHBACK ONORA-38788で失敗した場合は、スタンバイ同期を行ってから次のステップを実行し、その後でフラッシュバックを有効にします:
    [oracle@stbydb1]$ sqlplus / as sysdba 
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 
    SQL> alter database flashback on; 
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
  26. SQL*PlusおよびSRVCTLを使用して確認します。
    [oracle@stbydb1]$ srvctl config database -d chicago 
    [oracle@stbydb1]$ srvctl config database -d boston 
    [oracle@stbydb1]$ sqlplus / as sysdba 
    SQL> select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, DATAGUARD_BROKER, PROTECTION_MODE from v$database; 
    SQL> select PROCESS,PID,DELAY_MINS from V$MANAGED_STANDBY;
  27. DGMGRLを使用してOracle Data Guardを確認します。
    $ dgmgrl DGMGRL> connect sys/welcome1@boston 
    DGMGRL> show configuration verbose 
    DGMGRL> show database verbose chicago 
    DGMGRL> show database verbose boston 
    DGMGRL> validate database chicago 
    DGMGRL> validate database boston

    DGMGRL> show database verbose bostonコマンドは、次を表示します:

    Database Warning(s):
    ORA-16789: standby redo logs configured incorrectly
    ORA-16789: standby redo logs configured incorrectly
    Drop all standby logs on the standby side and recreate them.
    SQL> alter database recover managed standby database cancel;
    SQL> select group# from v$standby_log;
    SQL> alter database drop logfile group X; -- group# is coming from the previous query
    SQL> alter database add standby logfile thread 1 group 5 size 1G, group 6 size 1G, group 7 size 1G;
    SQL> alter database add standby logfile thread 2 group 8 size 1G, group 9 size 1G, group 10 size 1G;
    SQL> alter database recover managed standby database disconnect from session;
  28. Oracle Clusterwareロール・ベースのサービスを設定します。 「高可用性Oracle Databasesのクライアント・フェイルオーバーのベスト・プラクティス」を参照してください。
  29. データベースを登録します:
    [oracle@stbydb1]$ dgmgrl sys/welcome1@boston as sysdba 
    DGMGRL> edit database 'boston' set state='apply-off'; Succeeded. 
    DGMGRL> sql 'ALTER DATABASE OPEN READ ONLY'; Succeeded.
    [oracle@stbydb1]# odacli list-databases DCS-10032:Resource database is not found.
    [oracle@stbydb1]# odacli register-database -c OLTP -s odb2 -sn boston.oracle.com -nn Public-network -t RAC Job details 
    ---------------------------------------------------------------- 
    ID: 841f99e0-a66f-4b23-b753-b04f992a6c33 Description: Discover Components : db [oracle@stbydb1]# odacli describe-job -i 841f99e0-a66f-4b23-b753-b04f992a6c33
    Job details 
    ---------------------------------------------------------------- 
    ID: 9947df75-e9f4-4a42-bcd7-ec23561a2f3f 
    Description: Database service registration with db service name: test.com 
    Status: Success 
    Created: February 18, 2022 12:52:04 PM CET 
    Message: Task Name Start Time End Time Status 
    ---------------------------------------- ----------------------------------- ----------------------------------- ---------- Validate Hugepages For Register DB February 18, 2022 12:52:05 PM CET February 18, 2022 12:52:05 PM CET Success Enable OMF parameters February 18, 2022 12:52:06 PM CET February 18, 2022 12:52:07 PM CET Success Setting db character set February 18, 2022 12:52:07 PM CET February 18, 2022 12:52:07 PM CET Success Move Spfile to right location February 18, 2022 12:52:07 PM CET February 18, 2022 12:52:15 PM CET Success Enable DbSizing Template February 18, 2022 12:52:15 PM CET February 18, 2022 12:53:26 PM CET Success Running DataPatch February 18, 2022 12:53:26 PM CET February 18, 2022 12:53:28 PM CET Success Reset Associated Networks for Databse February 18, 2022 12:53:29 PM CET February 18, 2022 12:53:33 PM CET Success Reset Associated Networks February 18, 2022 12:53:33 PM CET February 18, 2022 12:53:33 PM CET Success
    [oracle@stbydb1]# odacli list-databases
    ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID 
    ---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ---------------------------------------- 9139ea53-449d-413a-841b-b157c084f3e0 bikazug RAC 19.14.0.0.220118 false OLTP odb2 ASM CONFIGURED 2afd69ed-f2cd-4345-9860-480f9e21f3ad
    [oracle@stbydb1]# odacli describe-database -i fbc4a32e-fec4-403d-b7b8-b08a3c01ab46
    Database details 
    ---------------------------------------------------------------- 
    ID: 9139ea53-449d-413a-841b-b157c084f3e0 
    Description: chicago 
    DB Name: chicago 
    DB Version: 19.14.0.0.220118 
    DB Type: RAC 
    DB Role: STANDBY DB 
    Target Node Name: 
    DB Edition: EE 
    DBID: 1128302500 Instance Only 
    Database: false 
    CDB: false 
    PDB Name: 
    PDB Admin User Name: 
    SEHA Enabled: false 
    Class: OLTP 
    Shape: odb2 
    Storage: ASM 
    DB Redundancy: MIRROR 
    CharacterSet: AL32UTF8 
    National CharacterSet: AL16UTF16 
    Language: AMERICAN 
    Territory: AMERICA 
    Home ID: 2afd69ed-f2cd-4345-9860-480f9e21f3ad 
    Console Enabled: false 
    TDE Wallet Management: 
    TDE Enabled: false 
    Level 0 Backup Day: 
    AutoBackup Enabled: true 
    Created: February 18, 2022 12:52:02 PM CET 
    DB Domain Name: 
    Associated Networks: Public-network 
    CPU Pool Name:

    TDE対応データベースの場合、 -tpオプションを指定します:

    # odacli register-database -c OLTP -s odb2 -sn boston.us.oracle.com -nn Public-network -t RAC -tp
    Enter SYS, SYSTEM and PDB Admin user password:
    Retype SYS, SYSTEM and PDB Admin user password:
    Enter TDE wallet password:
    Retype TDE wallet password:
    {
      "jobId" : "fb2b8a1f-bd5a-4f9b-8ba1-8070ba63c508",
      "status" : "Created",
      "message" : null,
      "reports" : [ ],
      "createTimestamp" : "December 09, 2023 13:45:51 PM CET",
      "resourceList" : [ ],
      "description" : "Database service registration with DB service name: boston.us.oracle.com",
      "updatedTime" : "December 09, 2023 13:45:51 PM CET",
      "jobType" : null
    }

    読取り専用モードでデータベースをオープンすることは、Oracle Database Applianceへの登録に必要な1回かぎりの操作であり、Oracle Active Data Guardライセンス権限に準拠していることに注意してください。

  30. ログの送付を再度有効にし、スタンバイ・データベースを再起動します。
    [oracle@stbydb1]$ dgmgrl sys/welcome1@boston as sysdba 
    DGMGRL> edit database 'boston' set state='apply-on';
    Succeeded.
    [oracle@stbydb1]$ srvctl stop database -db boston 
    [oracle@stbydb1]$ srvctl start database -db boston
  31. Oracle Data Guardを使用してスイッチオーバー操作を確認します:
    $ dgmgrl DGMGRL> connect sys/welcome1@boston 
    DGMGRL> switchover to boston
    DGMGRL> connect sys/welcome1@chicago 
    DGMGRL> switchover to chicago;
  32. Oracle Data Guardを使用してフェイルオーバー操作を確認します。

    フェイルオーバー前にスタンバイに接続します:

    $ dgmgrl DGMGRL> connect sys/welcome1@boston 
    DGMGRL> failover to boston 
    DGMGRL> reinstate database chicago

    フェイルオーバー前に以前のプライマリに接続します:

    DGMGRL> connect sys/welcome1@chicago 
    DGMGRL> failover to chicago; 
    DGMGRL> reinstate database boston