在目标上禁用约束条件

必须在目标表上禁用触发器和级联约束条件,或者将触发器和级联约束条件配置为忽略复制所做的更改。必须禁用约束条件,因为 Oracle GoldenGate 复制由触发器或级联约束条件产生的 DML。如果在目标表上激活了相同的触发器或约束条件,则由于复制的版本,该触发器或约束条件将变得冗余,并且数据库将返回错误。请考虑以下示例,其中源表为 emp_src 和 salary_src,目标表为 emp_targ 和 salary_targ。

  1. 对 emp_src 发出删除。

  2. 它将删除级联到 salary_src。

  3. Oracle GoldenGate 会将两项删除操作发送到目标。

  4. 父删除首先到达,并应用于 emp_targ。

  5. 父删除将删除级联到 salary_targ。

  6. salary_src 中的级联删除将应用于 salary_targ。

  7. 无法找到该行,因为已在步骤 5 中将其删除。