ターゲット表に対するトリガーおよびカスケード制約の無効化

SQL Serverがターゲットの環境では、ソースで発生した操作を繰り返す可能性のあるトリガーおよびカスケード制約を考慮します。たとえば、TableBにレコードを挿入するTableAの挿入トリガーがソースにあり、TableAおよびTableBの両方をキャプチャおよび配信するようにOracle GoldenGateが構成されている場合、ターゲット表TableAの挿入トリガーを無効にする必要があります。そうしないと、ReplicatはTableAに挿入し、トリガーが起動してTableBに挿入します。ReplicatはTableBにも挿入しようとするため、異常終了します。

トリガーまたはカスケード制約がソースで発生した操作を繰り返すと、次の条件が両方ともtrueである場合、トリガーまたは制約を使用禁止にする必要はありません。

  • DBOPTIONS USEREPLICATIONUSERパラメータをReplicatに使用します。

  • OLE DB接続をReplicatに使用します。OLE DB接続の使用はデフォルトの構成です。トリガー、制約、またはIDENTITYプロパティでNOT FOR REPLICATIONを有効にする必要があります。

次のシナリオでは、ターゲットでトリガーおよび制約を無効にします。

  • ソースのすべての表がレプリケートされる単方向のレプリケーション。

次のシナリオでは、ターゲットのトリガーおよび制約を有効にします。

  • トリガーまたはカスケード操作によって影響を受ける表がレプリケートされず、これらの表をロードするアプリケーションのみがトリガーまたはカスケード操作を使用している単方向のレプリケーション。

  • ソースのすべての表がレプリケートされる単方向または双方向のレプリケーション。このシナリオでは、ターゲット表のカスケード制約およびトリガーを設定してNOT FOR REPLICATIONを有効にし、ReplicatのDBOPTIONS USEREPLICATIONUSERパラメータを使用してください。