使用例6: ソースPDBに対するData Guard保護の構成

newyorkコンテナ・データベース内のターゲットPDB nyc_salesを構成することで、ソースPDB bos_salesに対してData GuardによるPDBレベルの保護を構成します。これは、次の4つのタスクで実装されます:
  1. ADD PLUGGABLE DATABASEコマンドを実行してターゲット・コンテナ・データベースにターゲットPDBを作成します。
  2. ソースPDBに関連付けられているすべてのファイルをターゲットPDBの場所にコピーすることで、ターゲットPDBをインスタンス化します。
  3. 外部ソースのREDOを受け取る、PDBレベルのスタンバイREDOログ・ファイル(SRL)を作成します。
  4. ソースPDBからターゲットPDBへのREDO転送を開始します。
タスク1: ADD PLUGGABLE DATABASEコマンドを実行します。
DGMGRL> ADD PLUGGABLE DATABASE 'nyc_sales' AT newyork SOURCE is 'bos_sales' AT boston PDBFileNameConvert is 
"'/BOSTON/bos_sales/','/NEWYORK/nyc_sales/'"; 
Pluggable Database "NYC_SALES" added
タスク2: ターゲットPDBをインスタンス化します
ターゲット・システムで、ターゲットPDBファイルを格納するディレクトリを作成します。このディレクトリの名前と場所、およびコピーしたファイルの名前と場所が、ADD PLUGGABLE DATABASEコマンドのPDBFileNameConvert句で指定されているルールに従っている必要があります。<myowner><nychost>を、ご使用の環境に適した値に置き換えてください。
$ cd $ORACLE_BASE/oradata/NEWYORK 
$ mkdir nyc_sales
ソースPDBファイルをこのディレクトリにコピーします。この例では、Linuxオペレーティング・システムのセキュア・コピー・コマンドscpを使用してこのタスクを実行します。
ソース・ホストで、SYSDBAとしてソースCDB bostonに接続し、次のSQLコマンドを発行します:
SQL> ALTER SESSION SET CONTAINER=bos_sales; 
Session altered. 
SQL> ALTER DATABASE BEGIN BACKUP; 
Database altered. 
SQL> host scp -r $ORACLE_BASE/oradata/BOSTON/bos_sales/* 
<myowner>@<nychost>:$ORACLE_BASE/oradata/NEWYORK/nyc_sales 
sysaux01.dbf  100%   930MB   22.4MB/s   00:41 
system01.dbf  100%   310MB   27.7MB/s   00:11 
temp01.dbf    100%   20MB    92.0MB/s   00:00 
undotbs01.dbf 100%   100MB   54.9MB/s   00:01 
users01.dbf   100%   5128KB  55.0MB/s   00:00 
SQL> ALTER DATABASE END BACKUP; Database altered.
タスク3: PDBレベルのスタンバイREDOログ・ファイルを作成します。

この手順は、ターゲットPDBをコンテナ・データベース内で初めて構成するときにのみ実行します。

従来のData Guardデプロイメントの場合、スタンバイREDOログ・ファイル(SRL)は、通常は、スタンバイ・データベースを作成する前にCDBレベルでプライマリ・データベースに追加されます。そのため、RMANによってこれらのファイルが、それ以降にプライマリ・データベースから作成されたすべてのスタンバイ・データベースに自動的に伝播されます。

一方、DGPDBデプロイメントの場合、SRLは、初期DGPDB構成および1つ以上のターゲットPDBが作成された後に、PDBレベルで追加されます。PDBレベルのSRLは、ターゲット・ロールのPDBにのみ追加できます。CDBにターゲット・ロールのPDBが複数ある場合は、これらすべてのターゲットPDBで、その対応するソースPDBからREDOを受け取る同じ一連のPDBレベルSRLが共有されます。また、CDBにターゲット・ロールのPDBがない場合、そのCDBに対してPDBレベルのSRLを作成するには、1つのPDBをソース・ロールからターゲット・ロールに変更する必要があります。構成例では、使用例7: ソースPDBからターゲットPDBへのスイッチオーバーで、PDBレベルのSRLが現在のソースPDB bos_salesに追加されます。

ターゲットCDB newyorkにSYSDBAとして接続し、次のSQLコマンドを発行してPDBレベルのSRLを追加します。なお、PDBレベルのSRL用に指定するサイズはソース・コンテナ・データベースのオンラインREDOログ・ファイル(ORL)と同じサイズである必要があります。また、通常は、ソースCDBからのREDOを受け取ることができるターゲットPDBレベルの空きSRLが必ず存在するようにPDBレベルのSRLの数がソースORLの数より1つ多くなります。
SQL> ALTER SESSION SET CONTAINER=nyc_sales; 
Session altered. 
SQL> ALTER DATABASE ADD STANDBY LOGFILE thread 1 
  2 group 4 ('$ORACLE_BASE/fast_recovery_area/NEWYORK/onlinelog/standby_redo04.log') size 200M, 
  3 group 5 ('$ORACLE_BASE/fast_recovery_area/NEWYORK/onlinelog/standby_redo05.log') size 200M, 
  4 group 6 ('$ORACLE_BASE/fast_recovery_area/NEWYORK/onlinelog/standby_redo06.log') size 200M, 
  5 group 7 ('$ORACLE_BASE/fast_recovery_area/NEWYORK/onlinelog/standby_redo07.log') size 200M; 
Database altered.
VALIDATE PLUGGABLE DATABASEコマンドを使用して、PDBレベルのスタンバイREDOログ・ファイルが正常に作成されていることを確認します:
DGMGRL> VALIDATE PLUGGABLE DATABASE nyc_sales AT newyork;   
  Ready for Switchover:    NO 
  Data Guard Role:         Physical Standby 
  Apply State:             Not Running 
  Standby Redo Log Files:  4   
  Source:                  BOS_SALES (con_id 3) at boston 
タスク4: ソースPDBからターゲットPDBへのREDO転送を開始します。
なお、REDO Applyは実行されていません。DGMGRLを使用してターゲットPDBでREDO Applyを起動します。
DGMGRL> EDIT PLUGGABLE DATABASE nyc_sales AT newyork 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 SOURCE role 
Configuration Status: 
SUCCESS (status updated 3 seconds ago) 

DGMGRL> SHOW PLUGGABLE DATABASE bos_sales AT boston; 
Pluggable database - BOS_SALES at boston 
  Data Guard Role:   Primary 
  Con_ID:            3 
  Active Target:     con_id 3 at newyork 
Pluggable Database Status: 
SUCCESS 

DGMGRL> SHOW PLUGGABLE DATABASE nyc_sales AT newyork; 
Pluggable database - NYC_SALES at newyork 
  Data Guard Role:    Physical Standby 
  Con_ID:              3 
  Source:              con_id 3 at boston 
  Transport Lag:       13 minutes 11 seconds (computed 59 seconds ago) 
  Apply Lag:           (unknown) 
  Intended State:      APPLY-ON 
  Apply State:         Running 
  Apply Instance:      newyork 
  Average Apply Rate:  (unknown) 
  Real Time Query:     OFF 
Pluggable Database Status: 
SUCCESS
REDO ApplyはターゲットPDBで実行されていますが転送ラグがあることに注意してください。ソースCDB bostonにSYSDBAとして接続し、現在のログを数回アーカイブして、新しく構成されたスタンバイREDOログ・ファイルへのREDO転送を開始します。
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; 
System altered. 

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; 
System altered.
ターゲットPDBの状態を再度確認すると、ターゲットPDBによって、転送ラグも適用ラグもなしでソースPDBが保護されていることがわかります。
DGMGRL> SHOW PLUGGABLE DATABASE nyc_sales AT newyork; 
Pluggable database - NYC_SALES at newyork 
  Data Guard Role:        Physical Standby 
  Con_ID:                 3 
  Source:                 con_id 3 at boston  
  Transport Lag:          0 seconds (computed 0 second ago) 
  Apply Lag:              0 seconds (computed 0 second ago) 
  Intended State:         APPLY-ON 
  Apply State:            Running 
  Apply Instance:         newyork 
  Average Apply Rate:     178 KByte/s 
  Real Time Query:        OFF 
Pluggable Database Status: 
SUCCESS
次の使用例でもこのDGMGRLセッションを引き続き使用します。