この記事は、RACOneノードアーキテクチャでActiveDataGuardフィジカルスタンバイを設定する手順を説明する2部構成のシリーズのパート2です。パート1はここにあります。
1.データベースの複製プロセスが終了したら(記事のパート1)、クラスターウェアにスタンバイデータベースを追加します
srvctl add database -d analytics_dg -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -c RACONENODE -p '+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' -r PHYSICAL_STANDBY -s MOUNT -n analytics_dg -e hostdr
2.データベースをシャットダウンします
sqlplus> shutdown immediate;
3.「Oracleパスワードファイル」を新しいインスタンス名「orapwanalyticsdg_1」でコピーします
cd $ORACLE_HOME/dbs cp orapwanalytics_dg orapwanalyticsdg_1
4.データベースを開始します
$ srvctl start database -d analytics_dg $ srvctl config database -d analytics_dg Database unique name: analytics_dg Database name: analytics_dg Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_1 Oracle user: oracle Spfile: +DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora Password file: Domain: Start options: read only Stop options: immediate Database role: PHYSICAL_STANDBY Management policy: AUTOMATIC Server pools: Disk Groups: DG_DATA,DG_RECO Mount point paths: Services: Type: RACOneNode Online relocation timeout: 30 Instance name prefix: analyticsdg Candidate servers: hostdr OSDBA group: sdba OSOPER group: soper Database instances: Database is administrator managed
5. Oracle restartのパターンによると、analytics_dgインスタンスはanalyticsdg_1と呼ばれるため、listener.oraを更新する必要があります。
「listenerreload」コマンドを実行して、リスナーに「listener.ora」エントリを再度読み取らせる。注意!この操作はリスナーの可用性に影響します。
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = analytics_dg_dgmgrl) # (SID_NAME = analytics_dg) (SID_NAME = analyticsdg_1) (ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/dbhome_1) ) )>
6.接続と設定を検証するために、REDOトランスポートサービスが手動で有効になります。
パラメータDB_BLOCK_CHECKSUM 、 DB_BLOCK_CHECKING およびDB_LOST_WRITE_PROTECT 破損したブロックを防止および検出するために、プライマリとスタンバイの両方のデータベースに設定されます。
6.1。スタンバイデータベースのパラメータを調整する
sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ; sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES, ALL_LOGFILES) db_unique_name=analytics_dg' scope=both sid='*' ; sqlplus> alter system set log_archive_dest_2='service=analytics LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics' scope=both sid='*'; sqlplus> alter system set fal_server='analytics' scope=both sid='*'; sqlplus> alter system set fal_client='analytics_dg' scope=both sid='*'; sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*'; sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*'; sqlplus> alter system set db_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*'; sqlplus> alter system set log_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*'; sqlplus> alter system set db_block_checksum=FULL scope=both sid='*' ; sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ; sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ; sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*'; sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*';
6.2。プライマリデータベースのパラメータを調整します:
sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ; sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES,ALL_LOGFILES) db_unique_name=analytics' scope=both sid='*' ; sqlplus> alter system set log_archive_dest_2='service=analytics_dg LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics_dg' scope=both sid='*'; sqlplus> alter system set fal_server='analytics_dg' scope=both sid='*'; sqlplus> alter system set fal_client='analytics' scope=both sid='*'; sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*' ; sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*' ; sqlplus> alter system set db_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*'; sqlplus> alter system set log_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*'; sqlplus> alter system set db_block_checksum=TYPICAL scope=both sid='*' ; sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ; sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ; sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*' ; sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*' ;
6.3。プライマリおよびスタンバイの「ステータス」属性は「有効」を返す必要があります
sqlplus> select dest_id,status,destination ,error from v$archive_dest where dest_id <=5; ID DB_status Archive_dest Error ---------- --------- ----------------------------- ------- 1 VALID USE_DB_RECOVERY_FILE_DEST 2 VALID analytics_dg 3 INACTIVE 4 INACTIVE 5 INACTIVE sqlplus> select dest_id,status,database_mode,recovery_mode from v$archive_dest_status where status <> 'INACTIVE'; DEST_ID STATUS DATABASE_MODE RECOVERY_MODE ---------- --------- --------------- ----------------------- 1 VALID OPEN IDLE 2 VALID MOUNTED-STANDBY IDLE
6.4。手動でREDO適用を開始します:
sqlplus> alter database recover managed standby database using current logfile disconnect;
6.5。プライマリデータベースとスタンバイデータベースの検証間の同期
sqlplus> select * from v$archive_gap; sqlplus> select name, value, datum_time, time_computed from v$dataguard_stats where name like 'apply lag'; sqlplus> select file_type, number_of_files, percent_space_used from v$recovery_area_usage; sqlplus> select current_scn from v$database; sqlplus> select sequence#, first_time, applied from v$archived_log order by sequence#;
6.6。 DataGuardBrokerを設定する前にREDOApplyを停止してください
sqlplus> alter database recover managed standby database cancel; Database altered.
7.プライマリデータベースとスタンバイデータベースにDataGuardBrokerを設定する
注:Data Guard設定ファイルは、ASMの異なるディスクグループ(dg_broker_config_file1およびdg_broker_config_file2
)に作成されます。7.1。プライマリデータベースの場合:
sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA_DR/analytics/BROKERCFG/brokeranalytics1.dat' scope=both sid='*'; sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO_DR/analytics/BROKERCFG/brokeranalytics2.dat' scope=both sid='*'; sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ; sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*'; sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';
7.2。スタンバイデータベースの場合:
sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA/analytics_DG/BROKERCFG/brokeranalytics_dg1.dat' scope=both sid='*'; sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO/analytics_DG/BROKERCFG/brokeranalytics_dg2.dat' scope=both sid='*'; sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ; sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*'; sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';
7.3。ブローカー設定:
$ dgmgrl dgmgrl> connect sys/xxxxx@analytics Connected as SYSDBA. dgmgrl> create configuration 'analytics_cfg' as primary database is 'analytics' connect identifier is analytics; Configuration "analytics_cfg" created with primary database "analytics" dgmgrl> add database 'analytics_dg' as connect identifier is analytics_dg maintained as physical; Database "analytics_dg" added dgmgrl> edit database 'analytics_dg' set property logxptmode=async; Property "logxptmode" updated dgmgrl> edit configuration set protection mode as MAXPERFORMANCE; Succeeded. dgmgrl> enable configuration; Enabled.
SHOW CONFIGURATIONコマンドを使用して、簡単な設定の概要を表示します。
dgmgrl> show configuration Configuration - analytics_cfg Protection Mode: MaxPerformance Databases: analytics - Primary database analytics_dg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
7.4。コマンドで設定を検証する
dgmgrl> show database verbose 'analytics_dg' 'RecvQEntries'; dgmgrl> show database verbose 'analytics'; dgmgrl> show database verbose 'analytics_dg';
ノード1:
sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database; NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE --------- -------------------- -------------------- -------------------- ----------- analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY
ノード2:
sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database; NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVE DATABASE_ROLE --------- -------------------- -------------------- -------------------- ----------- analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY
スタンバイDB:
sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database; NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE --------- ---------------- -------------------- -------------------- ---------------- analytics MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY
8.ブローカーでの調整は、設定「MaxConnections」、「TransportDisconnectedThreshold」、および「TransportLagThreshold」に対して行われます[1]
「maxConnections」プロパティは、プロセスにGAPがある場合に、REDOログファイルからリモートサイトにデータを転送するために並行して使用されるARCnプロセスの数を指定します。 MaxConnectionsが1より大きい値で定義されている場合、REDOトランスポートサービスは複数のARCnプロセスを使用して、REDOログファイルからスタンバイにデータを転送します。
「TransportDisconnectedThreshold」プロパティを使用すると、最後のプライマリデータベース通信がプロパティで指定された値を超えたときに、論理的または物理的な待機中またはインスタントキャプチャに対する警告ステータスを作成できます。プロパティの値は秒単位で表されます。
「TransportLagThreshold」プロパティを使用すると、データベースの転送遅延がプロパティで指定された値を超えたときに、論理的または物理的な待機中またはインスタントキャプチャに対する警告ステータスを作成できます。プロパティの値は秒単位で表されます。
dgmgrl> edit database 'analytics' SET PROPERTY 'MaxConnections'= 4; Property "MaxConnections" updated dgmgrl> edit database 'analytics' SET PROPERTY TransportDisconnectedThreshold='180'; Property "transportdisconnectedthreshold" updated dgmgrl> edit database 'analytics' SET PROPERTY TransportLagThreshold='900'; Property "transportlagthreshold" updated dgmgrl> edit database 'analytics_dg' SET PROPERTY 'MaxConnections'= 4; Property "MaxConnections" updated dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportDisconnectedThreshold='180'; Property "transportdisconnectedthreshold" updated dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportLagThreshold='900'; Property "transportlagthreshold" updated
9.プライマリデータベースの除外ポリシーアーカイブログを変更します。
rman> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
アクティブなDataguardのアクティブ化
10.ブローカーでのREDOApplyの停止
$ dgmgrl dgmgrl> connect sys dgmgrl> edit database 'analytics_dg' set state = 'apply-off'; dgmgrl> show database 'analytics_dg'
11.スタンバイインスタンスを読み取り専用モードで開きます。
sqlplus> alter database open read only;
12.ブローカーでREDOApplyを開始します
$ dgmgrl dgmgrl> connect sys dgmgrl> edit database 'analytics_dg' set state = 'apply-on'; dgmgrl> show database 'analytics_dg'
参照
[1]DataGuardBroker。 https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781で入手できます。