双方向ループ検出の有効化
Oracle GoldenGateの双方向実装には、1つのソース・データベースのExtractが、別のソース・データベースからReplicatによって送信されたトランザクションを再取得しないように、ループ検出が必須です。
CDC Extractキャプチャ方法の場合、デフォルトでは、Replicatの配信先の表に対してサプリメンタル・ロギングが有効なかぎり、Extractが構成されているデータベースにReplicatによってコミットされたトランザクションは、Replicatからのトランザクションを再取得します。
Replicatによって適用されるトランザクションの再取得を無視するには、CDC Extractに対してTRANLOGOPTIONS FILTERTABLEパラメータを使用する必要があります。フィルタリング表として使用する表は、Replicatのために作成が必要なOracle GoldenGateチェックポイント表です。
フィルタ表を作成してサプリメンタル・ロギングを有効化する手順:
このステップには、SQL Serverのシステム管理者(sysadmin)ロールのメンバーであるデータベース・ユーザーが必要です。
-
ソース・システムで、
GGSCIを実行します -
次のコマンドを発行してデータベースにログインします。
DBLOGIN SOURCEDB DSN [,{USERID user, PASSWORD password | USERIDALIAS alias}]前述の例の
SOURCEDB DSNは、SQL Serverデータソースの名前です。USERIDuserはデータベース・ログインで、PASSWORDpasswordは、データ・ソースがSQL Server認証を使用して接続する場合に必要なパスワードです。または、資格証明が資格証明ストアに格納されている場合、USERIDALIASaliasは、資格証明の別名です。統合Windows認証を使用するDSNにDBLOGINを使用する場合、GGSCIセッションのデータベースへの接続は、GGSCIを実行しているユーザーによるものになります。ADD TRANDATAまたはDELETE TRANDATAを発行するには、このユーザーは、SQL Serversysadminサーバー・ロールのメンバーである必要があります。 -
ソース・データベースにデータを配信するためにReplicatによって使用されるOracle GoldenGateチェックポイント表を作成します。
例:
ADD CHECKPOINTTABLE ogg.ggchkptGLOBALSファイルのGGSCHEMAパラメータで使用されるスキーマ名と同じものを使用することをお薦めします。 -
新しく作成されたチェックポイント表のサプリメンタル・ロギングを有効にします。
例:
ADD TRANDATA ogg.ggchkpt -
チェックポイント表の情報とともにReplicatを追加します。
例:
ADD REPLICAT reptgt1, EXTTRAIL ./dirdat/e2,checkpointtable ogg.ggchkpt -
フィルタリング表用のReplicatのチェックポイント表を使用して、
IGNOREREPLICATES(デフォルトでオン)およびFILTERTABLEパラメータによりExtractを構成します。TRANLOGOPTIONS IGNOREREPLICATESTRANLOGOPTIONS FILTERTABLE ogg.ggchkpt