7 シナリオ: DCSスタックでのOracle Data Guardの手動構成
このシナリオでは、DCSスタックのOracle Database ApplianceでのOracle Data Guardの設定について説明します。
- 「環境」
Oracle Database Applianceを使用した後続のData Guard設定例で使用されるプライマリおよびスタンバイ・データベース環境のトポロジの理解。 - 「Oracle Data Guardの構成」
Oracle Data Guardを手動で構成するステップを理解します。Oracle Data GuardをOracle Data Guard Brokerで構成することをお薦めします。
環境
Oracle Database Applianceを使用した後続のData Guard設定例で使用されるプライマリおよびスタンバイ・データベース環境のトポロジの理解。

図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で構成することをお薦めします。
- スタンバイ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;
- プライマリ・データベースでアーカイブ・ログ・モードを有効にします。
情報:
アーカイブは、アクティブ・データベースのREDOログが循環方式で上書きされる前に、REDO情報をアーカイブ・ファイルの形式で保存および保護するプロセスです。 Oracle Database Applianceで作成されたデータベースのアーカイブはデフォルトで有効になっています。プライマリ・データベースがARCHIVELOGモードで実行されていることを確認します。SQL> archive log list
プライマリ・データベースがARCHIVELOGモードで実行されていない場合は、次のようにARCHIVELOGモードを有効にします:- Oracle Database Applianceで両方のインスタンスを停止します。
$ srvctl stop database -d chicago
- 排他モードで1つのインスタンスを起動してマウントします。
SQL> startup mount exclusive;
- アーカイブをオンにします。
SQL> alter database archivelog;
- インスタンスを停止します。
SQL> shutdown immediate;
- データベースを再起動します。
$ srvctl start database -d chicago
- Oracle Database Applianceで両方のインスタンスを停止します。
- FORCE LOGGINGモードを有効にします。
強制ロギングを使用すると、NOLOGGING属性で実行されるデータベース操作を取得できます。 これにより、スタンバイ・データベースの整合性が保証されます。 プライマリ・データベースでFORCE LOGGINGがすでに有効になっているかどうかを確認します。
SQL> select force_logging from v$database;
FORCE LOGGINGが有効になっていない場合は、次のコマンドを使用して有効にします:SQL> alter database force logging;
- フラッシュバック・データベース機能を構成します。
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='*';
- スタンバイ・ファイル管理を有効にします。
プライマリ・データベースでデータファイルを追加または削除する場合、対応するアクションもスタンバイ・データベースで自動的に実行する必要があります。 この操作は、自動スタンバイ・ファイル管理を使用して有効にできます。
SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both sid='*';
- データベース・ホームが存在しない場合は、スタンバイに作成します。 たとえば:
[root@stbydb1]# odacli create-dbhome -v 19.14.0.0.220118
スタンバイのデータベース・ホーム・バージョンは、プライマリのデータベース・ホーム・バージョンと同じである必要があります。
- 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) ) )
- 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概念および管理ガイド」を参照してください。
- アーカイブ・ログ・サーバーのフェッチを設定します。 Oracle Data Guardブローカが構成されている場合は、このステップは必要ありません。
データベースがスタンバイ・ロールで、プライマリが欠落しているログ・ファイルを送信できない場合、スタンバイ・データベースはFAL_SERVER設定を使用して、欠落しているログ・ファイルをプルできます。 FAL_SERVERパラメータは、Oracle Netサービス名を使用します。
SQL> alter system set FAL_SERVER=boston scope=both sid='*';
- プライマリ・データベースの
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;
- プライマリおよびスタンバイのパラメータを追加または変更します。
プライマリ:
*.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が使用されます。
- スタンバイ上のデータベースのストレージ構造を作成します。
[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
- プライマリ・データベースから最初のスタンバイ・システムにパスワード・ファイルをコピーします。
[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
- 変更した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
- 制御ファイル・パラメータを更新します。pfile
/tmp/chicago.pfile
を編集し、control_files
パラメータを置き換えて前の出力からの新しいパスを表示します。 たとえば:control_files= â+RECO/BOSTON/CONTROLFILE/current.256.1086380745'
- 変更された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;
- TDE対応データベースの場合は、プライマリ・システムからTDEウォレットをコピーします:
- プライマリでウォレットのバックアップを作成します。
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.
- データベースのキーストアをファイル・システム・キーストアにマージします。 たとえば:
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.
- スタンバイに新しいキーストアを作成し、プライマリのキーストアをそのキーストアにマージします。
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";
- プライマリから新しく作成されたキーストアにキーストアをマージします。
SQL> administer key management merge keystore '/tmp/backup/' identified by "password" into existing keystore '+DATA/MILAN/tde' identified by "password" with backup;
- 自動ログインを作成します。
SQL> administer key management create auto_login keystore from keystore identified by "password"; keystore altered.
- プライマリでウォレットのバックアップを作成します。
- 並列性を有効にし、
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;
- プライマリ・データベース・サービスからスタンバイ・データベースをリストア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
- プライマリでのログ送信を有効にします。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
[oracle@proddb1]$ sqlplus / as sysdba SQL> alter system set log_archive_dest_state_2='enable' scope=both;
- スタンバイでフラッシュバック・データベースを有効にし、必要に応じて保持を調整します。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
SQL> alter database flashback on; SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=120;
- スタンバイで管理リカバリを開始します。 このステップは、Oracle Data Guardブローカを構成していない場合にのみ実行します。
[oracle@stbydb1]$ sqlplus / as sysdba SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
- スタンバイ・データベースを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
- パスワード・ファイルを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形式に従う必要があります。
- パラメータを設定し、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 ON
がORA-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;
- 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;
- 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;
- Oracle Clusterwareロール・ベースのサービスを設定します。 「高可用性Oracle Databasesのクライアント・フェイルオーバーのベスト・プラクティス」を参照してください。
- データベースを登録します:
[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ライセンス権限に準拠していることに注意してください。
- ログの送付を再度有効にし、スタンバイ・データベースを再起動します。
[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
- Oracle Data Guardを使用してスイッチオーバー操作を確認します:
$ dgmgrl DGMGRL> connect sys/welcome1@boston DGMGRL> switchover to boston DGMGRL> connect sys/welcome1@chicago DGMGRL> switchover to chicago;
- 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