使用例7: ソースPDBからターゲットPDBへのスイッチオーバー
スイッチオーバーにより、指定したPDBの間でソース・ロールとターゲット・ロールが交換されます。これは通常、計画的なロール遷移です。また、両方のPDBがオンラインでありアクセス可能であるため、データ損失はありません。スイッチオーバーは、ロード・バランシングや、計画的なメンテナンス操作に役立ちます。この例のDG PDB構成では、boston
コンテナ・データベースでbos_sales
PDBに対するPDBレベルのスタンバイREDOログの追加を容易にするために、スイッチオーバーを使用しています。
PDBレベルのSRLを現在のソースPDB
bos_sales
に追加するには、まずこのPDBをターゲット・ロールにする必要があります。これを行うには、ターゲットPDB nyc_sales
へのスイッチオーバーを実行してから、PDBレベルのSRLを新しいスタンバイPDB bos_sales
に追加します。
DGMGRL> SWITCHOVER TO PLUGGABLE DATABASE nyc_sales AT NEWYORK;
Verifying conditions for Switchover...
Source pluggable database is 'BOS_SALES' at database 'boston'
Performing switchover NOW, please wait...
Closing pluggable database 'BOS_SALES'...
Switching 'BOS_SALES' to standby role...
Waiting for 'NYC_SALES' to recover all redo data...
Stopping recovery at 'NYC_SALES'...
Converting 'NYC_SALES' to primary role...
Opening new primary 'NYC_SALES'...
Waiting for redo data from new primary 'NYC_SALES'...
Starting recovery at new standby 'BOS_SALES'...
Switchover succeeded, new primary is "NYC_SALES"
DGMGRL> SHOW CONFIGURATION;
Configuration - Boston
Protection Mode: MaxPerformance
Members:
boston - Primary database
newyork - Primary database in NewYork configuration
Data Guard for PDB: Enabled in TARGET role
Configuration Status:
SUCCESS (status updated 29 seconds ago)
PDB bos_sales
のスタンバイREDOログを作成するには、まずREDO Applyを停止します:
DGMGRL> EDIT PLUGGABLE DATABASE bos_sales AT boston SET STATE='APPLY-OFF';
Succeeded.
次に、新しいターゲットCDB boston
にSYSDBAとして接続し、次のSQLコマンドを発行してPDBレベルのSRLを追加します:
SQL> ALTER SESSION SET CONTAINER=bos_sales;
Session altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE thread 1
2 group 4 ('$ORACLE_BASE/fast_recovery_area/BOSTON/onlinelog/standby_redo04.log') size 200M,
3 group 5 ('$ORACLE_BASE/fast_recovery_area/BOSTON/onlinelog/standby_redo05.log') size 200M,
4 group 6 ('$ORACLE_BASE/fast_recovery_area/BOSTON/onlinelog/standby_redo06.log') size 200M,
5 group 7 ('$ORACLE_BASE/fast_recovery_area/BOSTON/onlinelog/standby_redo07.log') size 200M;
Database altered.
VALIDATE PLUGGABLE DATABASE
コマンドを使用して、PDBレベルのスタンバイREDOログ・ファイルが正常に作成されていることを確認します:
DGMGRL> VALIDATE PLUGGABLE DATABASE bos_sales AT boston;
Ready for Switchover: NO
Data Guard Role: Physical Standby
Apply State: Not Running
Standby Redo Log Files: 4
Source: NYC_SALES (con_id 3) at newyork
最後に、DGMGRLを使用してREDO Applyを再起動し、DG PDB構成がSUCCESS状態になっておりソースPDBより遅れていないことを確認します。
DGMGRL> EDIT PLUGGABLE DATABASE bos_sales AT boston SET STATE='APPLY-ON';
Succeeded.
DGMGRL> SHOW CONFIGURATION;
Configuration - Boston
Protection Mode: MaxPerformance
Members:
boston - Primary database
newyork - Primary database in NewYork configuration
Data Guard for PDB: Enabled in TARGET role
Configuration Status: SUCCESS (status updated 58 seconds ago)
DGMGRL> SHOW PLUGGABLE DATABASE bos_sales AT boston;
Pluggable database - BOS_SALES at boston
Data Guard Role: Physical Standby
Con_ID: 3
Source: con_id 3 at newyork
Transport Lag: (unknown)
Apply Lag: (unknown)
Intended State: APPLY-ON
Apply State: Running
Apply Instance: boston
Average Apply Rate: (unknown)
Real Time Query: OFF
Pluggable Database Status:
SUCCESS
ターゲットPDB bos_sales
の転送ラグと適用ラグの状態が(unknown)
であることに注目してください。ソース・データベースnewyork
にSYSDBAとして接続し、現在のログ・ファイルを数回アーカイブして、新しく作成されたスタンバイREDOログ・ファイルへのREDO転送を開始します:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
System altered.
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
System altered.
REDOがスタンバイREDOログ・ファイルに送信され、スタンバイREDOログ・ファイルから適用されるようになると、ターゲットPDBがソースPDBと同期されます。 DGMGRL> SHOW PLUGGABLE DATABASE bos_sales AT boston;
Pluggable database - BOS_SALES at boston
Data Guard Role: Physical Standby
Con_ID: 3
Source: con_id 3 at newyork
Transport Lag: 0 seconds (computed 2 seconds ago)
Apply Lag: 0 seconds (computed 2 seconds ago)
Intended State: APPLY-ON
Apply State: Running
Apply Instance: boston
Average Apply Rate: 27 KByte/s
Real Time Query: OFF
Pluggable Database Status:
SUCCESS