アクティブ/アクティブ(双方向)構成でのDDLの伝播
Oracle GoldenGateでは、2つのシステム間のアクティブ/アクティブDDLレプリケーションがサポートされます。アクティブ/アクティブ双方向レプリケーションの場合、Oracle GoldenGateプロセスで次のように構成される必要があります。
-
一方のシステムでビジネス・アプリケーションによって実行されるDDLを他方のシステムにレプリケートし、同期を保つ必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルで
DDLOPTIONS
文にGETAPPLOPS
オプションを含めます。 -
一方のシステムでReplicatによって適用されるDDLは、ローカルのExtractによってキャプチャされ、他方のシステムに戻される必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルで
DDLOPTIONS
文にGETREPLICATES
オプションを使用します。ノート:
ループバックが起こらないよう、内部的なOracle GoldenGateトークンによって、実際のReplicatのDDL文自体は無視されます。ReplicatのDDLを元のシステムに戻す目的は、着信DMLの受信に備えて、そのシステムのReplicatがオブジェクト・メタデータ・キャッシュを更新し、新しいメタデータを持つことです。
-
各Replicatは、キャプチャされたReplicat DDL文がリモートExtractから届いたら、そのオブジェクト・メタデータ・キャッシュを更新するように構成する必要があります。この要件を満たすには、両方のシステムのReplicatパラメータ・ファイルで
DDLOPTIONS
文にUPDATEMETADATA
オプションを使用します。
その結果、DDLOPTIONS
文は次のようになります。
Extract(プライマリおよびセカンダリ)
DDLOPTIONS GETREPLICATES, GETAPPLOPS
Replicat(プライマリおよびセカンダリ)
DDLOPTIONS UPDATEMETADATA
警告:
元のDDLと同じオブジェクトに対してDDLまたはDMLを発行する前に、元のDDLがリモート・システムにレプリケートされ、そのシステムのExtractによって再度キャプチャされる時間を考慮します。これによって、各操作が元のシステムのReplicatに正しい順序で届くことを保証し、メタデータの非一貫性によってDMLエラーが発生することを防止します。詳細は、次の図を参照してください。
図のラベルの意味は次のとおりです。
-
1:
ALTER TABLE
Customer ADD Birth_Date date -
2: 新しいメタデータ: First_Name varchar2(50)、Last_Name varchar2(50)、Address varchar2(50)、City varchar2(50)、Country varchar2(25)、Birth_Date date
-
3:
ALTER TABLE
-
4: 新しいメタデータ: First_Name varchar2(50)、Last_Name varchar2(50)、Address varchar2(50)、City varchar2(50)、Country varchar2(25)、Birth_Date date
-
5:
ALTER TABLE
-
6:
DDLOPTIONS UPDATEMETADATA
新しいメタデータ: First_Name varchar2(50)、Last_Name varchar2(50)、Address varchar2(50)、City varchar2(50)、Country varchar2(25)、Birth_Date date
DDLOPTIONS
の詳細は、『Oracle GoldenGateリファレンス』を参照してください。
双方向構成の構成の詳細は、双方向レプリケーションのクイックスタートを参照してください。