アクティブ/アクティブ(双方向)構成でのDDLの伝播

Oracle GoldenGateでは、2つのシステム間のアクティブ/アクティブDDLレプリケーションがサポートされます。アクティブ/アクティブ双方向レプリケーションの場合、Oracle GoldenGateプロセスで次のように構成される必要があります。

  1. 一方のシステムでビジネス・アプリケーションによって実行されるDDLを他方のシステムにレプリケートし、同期を保つ必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルでDDLOPTIONS文にGETAPPLOPSオプションを含めます。

  2. 一方のシステムでReplicatによって適用されるDDLは、ローカルのExtractによってキャプチャされ、他方のシステムに戻される必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルでDDLOPTIONS文にGETREPLICATESオプションを使用します。

    ノート:

    ループバックが起こらないよう、内部的なOracle GoldenGateトークンによって、実際のReplicatのDDL文自体は無視されます。ReplicatのDDLを元のシステムに戻す目的は、着信DMLの受信に備えて、そのシステムのReplicatがオブジェクト・メタデータ・キャッシュを更新し、新しいメタデータを持つことです。

  3. 各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リファレンス』を参照してください。

双方向構成の構成の詳細は、双方向レプリケーションのクイックスタートを参照してください。