双方向ループ検出の有効化
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データソースの名前です。USERID
userはデータベース・ログインで、PASSWORD
passwordは、データ・ソースがSQL Server認証を使用して接続する場合に必要なパスワードです。または、資格証明が資格証明ストアに格納されている場合、USERIDALIAS
aliasは、資格証明の別名です。統合Windows認証を使用するDSNにDBLOGIN
を使用する場合、GGSCIセッションのデータベースへの接続は、GGSCIを実行しているユーザーによるものになります。ADD TRANDATA
またはDELETE TRANDATA
を発行するには、このユーザーは、SQL Serversysadmin
サーバー・ロールのメンバーである必要があります。 -
ソース・データベースにデータを配信するためにReplicatによって使用されるOracle GoldenGateチェックポイント表を作成します。
例:
ADD CHECKPOINTTABLE ogg.ggchkpt
GLOBALS
ファイルのGGSCHEMA
パラメータで使用されるスキーマ名と同じものを使用することをお薦めします。 -
新しく作成されたチェックポイント表のサプリメンタル・ロギングを有効にします。
例:
ADD TRANDATA ogg.ggchkpt
-
チェックポイント表の情報とともにReplicatを追加します。
例:
ADD REPLICAT reptgt1, EXTTRAIL ./dirdat/e2,checkpointtable ogg.ggchkpt
-
フィルタリング表用のReplicatのチェックポイント表を使用して、
IGNOREREPLICATES
(デフォルトでオン)およびFILTERTABLE
パラメータによりExtractを構成します。TRANLOGOPTIONS IGNOREREPLICATES
TRANLOGOPTIONS FILTERTABLE ogg.ggchkpt