ターゲット表でのトリガーと参照カスケード制約の無効化
Replicatが非統合モードの場合、トリガーとカスケード制約をOracleターゲット表で無効にする必要があります。
Oracle GoldenGateでは、トリガーまたはカスケード制約の発生によって生じたDMLがレプリケートされるため、Replicatが非統合モードの場合は制約を無効にする必要があります。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表にemp_srcとsalary_src、ターゲット表にemp_targとsalary_targを使用している次の例について考えます。
-
emp_srcに削除が発行されます -
それによって、削除が
salary_srcにカスケードされます。 -
Oracle GoldenGateが、両方の削除をターゲットに送信します。
-
親削除が最初に到達し、
emp_targに適用されます。 -
親削除によって、削除が
salary_targにカスケードされます。 -
salary_srcのカスケードされた削除が、salary_targに適用されます。 -
行は、すでにステップ5で削除されているため、見つかりません。