双方向レプリケーションの構成

双方向構成では、各システムのトランザクション変更をもう一方のシステムにレプリケーションすることをサポートするために、ソースおよびターゲットの両方のシステムにExtractおよびReplicatプロセスがあります。この構成をサポートするには、適用されたトランザクションが再キャプチャされてソースに送られることが繰り返されることのないよう、各ExtractがローカルのReplicatで適用されたトランザクションをフィルタできる必要があります。さらに、キー列がAUTO_INCREMENT列である表は、各システムで値の競合が生じないように設定する必要があります。

  1. Oracle GoldenGateに高可用性またはアクティブ/アクティブ型のレプリケーションを構成します。
  2. 適用された操作がキャプチャされてソースに再度ループバックされないように、双方向構成のReplicat操作をフィルタの対象外にするには、各MySQLデータベースで次のステップを実行します。
    • チェックポイント表を使用するように各Replicatプロセスを構成します。Replicatでは、各トランザクションの最後にチェックポイントをこの表に書き込みます。1つのグローバル・チェックポイント表またはReplicatプロセスごとに1つのグローバル・チェックポイント表を使用できます。

    • Extractパラメータ・ファイルに含まれるTRANLOGOPTIONSパラメータのFILTERTABLEオプションを使用して、チェックポイント表の名前を指定します。Extractプロセスでは、指定された表に対する操作(Replicat操作のみ)で終了するトランザクションは無視されます。

      ノート:

      チェックポイント表の使用は、サポートされている他のデータベースではリカバリを拡張するためのオプションですが、MySQLで双方向レプリケーションを使用する際には必須です(同様にリカバリも拡張されます)。

      双方向レプリケーションでパラレルReplicatを使用する場合、TRANLOGOPTIONS FILTERTABLEオプションを使用すると複数のフィルタ表がサポートされます。複数のフィルタ表を使用すると、異なる表名またはワイルドカードでTRANLOGOPTIONS FILTERTABLEを複数回指定できます。

      Extractパラメータ・ファイルには、単一または複数のTRANLOGOPTIONS FILTERTABLEエントリを含めることができます。次の例では、複数のTRANLOGOPTIONS FILTERTABLEエントリが、明示的なオブジェクト名とワイルドカードを使用してExtractパラメータ・ファイルに含まれています。
      TRANLOGOPTIONS FILTERTABLE ggs.chkpt2
      TRANLOGOPTIONS FILTERTABLE ggs.chkpt_RABC_*
  3. AUTO_INCREMENT列を含む表のデータをレプリケートする場合は、双方向操作によって発生する可能性がある不一致を回避するように、MySQLサーバーおよびauto_increment_offsetパラメータを編集します。ServerAServerBの2つのサーバーを例として、これらのパラメータを次に示します。

    ServerA:

    auto-increment-increment = 2
    auto-increment-offset = 1

    ServerB:

    auto-increment-increment = 2
    auto-increment-offset = 2