双方向ループ検出の有効化

Oracle GoldenGateの双方向実装には、1つのソース・データベースのExtractが、別のソース・データベースからReplicatによって送信されたトランザクションを再取得しないように、ループ検出が必須です。

CDC Extractキャプチャ方法の場合、デフォルトでは、Replicatの配信先の表に対してサプリメンタル・ロギングが有効なかぎり、Extractが構成されているデータベースにReplicatによってコミットされたトランザクションは、Replicatからのトランザクションを再取得します。

Replicatによって適用されるトランザクションの再取得を無視するには、CDC Extractに対してTRANLOGOPTIONS FILTERTABLEパラメータを使用する必要があります。フィルタリング表として使用する表は、Replicatのために作成が必要なOracle GoldenGateチェックポイント表です。

フィルタ表を作成してサプリメンタル・ロギングを有効化する手順:

このステップには、SQL Serverのシステム管理者(sysadmin)ロールのメンバーであるデータベース・ユーザーが必要です。

  1. ソース・システムで、GGSCIを実行します

  2. 次のコマンドを発行してデータベースにログインします。

    DBLOGIN SOURCEDB DSN [,{USERID user, PASSWORD password | USERIDALIAS alias}]

    前述の例のSOURCEDB DSNは、SQL Serverデータソースの名前です。USERID userはデータベース・ログインで、PASSWORD passwordは、データ・ソースがSQL Server認証を使用して接続する場合に必要なパスワードです。または、資格証明が資格証明ストアに格納されている場合、USERIDALIAS aliasは、資格証明の別名です。統合Windows認証を使用するDSNにDBLOGINを使用する場合、GGSCIセッションのデータベースへの接続は、GGSCIを実行しているユーザーによるものになります。 ADD TRANDATAまたはDELETE TRANDATAを発行するには、このユーザーは、SQL Server sysadminサーバー・ロールのメンバーである必要があります。

  3. ソース・データベースにデータを配信するためにReplicatによって使用されるOracle GoldenGateチェックポイント表を作成します。

    例: ADD CHECKPOINTTABLE ogg.ggchkpt

    GLOBALSファイルのGGSCHEMAパラメータで使用されるスキーマ名と同じものを使用することをお薦めします。

  4. 新しく作成されたチェックポイント表のサプリメンタル・ロギングを有効にします。

    例: ADD TRANDATA ogg.ggchkpt

  5. チェックポイント表の情報とともにReplicatを追加します。

    例: ADD REPLICAT reptgt1, EXTTRAIL ./dirdat/e2,checkpointtable ogg.ggchkpt

  6. フィルタリング表用のReplicatのチェックポイント表を使用して、IGNOREREPLICATES (デフォルトでオン)およびFILTERTABLEパラメータによりExtractを構成します。

    TRANLOGOPTIONS IGNOREREPLICATES

    TRANLOGOPTIONS FILTERTABLE ogg.ggchkpt