ALLOWNONVALIDATEDKEYS

有效对象

GLOBALS

说明

使用 ALLOWNONVALIDATEDKEYS 可以允许 Extract、Replicat 和 Admin Client 命令使用未验证的主键或无效键作为唯一标识符。此参数将改写 Oracle GoldenGate 使用的关键选择标准。启用后,Oracle GoldenGate 将使用 NON VALIDATED 和 NOT VALID 主键作为唯一标识符。

密钥可能会因对象重组或许多其他操作而变为无效,但如果您知道密钥有效,则 ALLOWNONVALIDATEDKEYS 会节省重新验证密钥的停机时间,尤其是在测试环境中。但是,使用 ALLOWNONVALIDATEDKEYS 时,无论是在测试中还是在生产环境中,您都会承担无法通过复制准确维护目标数据的风险。如果某个关键字被证明无效,并且定义该关键字的表包含多个具有相同关键字值的记录,则 Oracle GoldenGate 可能会选择错误的目标行进行更新。

要在 DDL 复制未处于活动状态的配置中启用 ALLOWNONVALIDATEDKEYS,请停止所有进程,将 ALLOWNONVALIDATEDKEYS 添加到 GLOBALS 参数文件,然后重新启动进程。要再次禁用 ALLOWNONVALIDATEDKEYS,请将其从 GLOBALS 文件中删除,然后重新启动进程。

要在 DDL 支持处于活动状态的配置中启用 ALLOWNONVALIDATEDKEYS 功能,请执行以下步骤。

  1. 将 ALLOWNONVALIDATEDKEYS 参数添加到 GLOBALS 参数文件中。

  2. 使用以下 SQL 更新 DDL 方案中的 GGS_SETUP 表。

UPDATE <owner>.GGS_SETUP SET value='1' WHERE property='ALLOWNONVALIDATEDKEYS';
COMMIT;
  1. 重新启动所有 Oracle GoldenGate 进程,包括 Manager。从此以后,Oracle GoldenGate 会选择未验证或无效的主键作为唯一标识符。

要在 DDL 支持处于活动状态时禁用 ALLOWNONVALIDATEDKEYS 功能,请执行以下步骤。

  1. 从 GLOBALS 参数文件中删除 ALLOWNONVALIDATEDKEYS。

  2. 将添加到 GGS_SETUP 表中的记录更新到 0。

    UPDATE owner.GGS_SETUP SET value='0' WHERE property='ALLOWNONVALIDATEDKEYS';
    COMMIT;

    重新启动所有 Oracle GoldenGate 进程。

默认值

无(已禁用)

语法

ALLOWNONVALIDATEDKEYS