压缩删除 | NOCOMPRESSDELETES
有效对象
提取
说明
使用 COMPRESSDELETES 和 NOCOMPRESSDELETES 参数控制将列写入 DELETE 操作的线索记录的方式。
COMPRESSDELETES 和 NOCOMPRESSDELETES 可以全局用于参数文件中的所有 TABLE 语句,也可以用作单个 TABLE 语句的关闭开关。
这些参数支持以下数据库:
-
Oracle
-
DB2LUW -
DB2z/OS -
i 的
DB2 -
MySQL
-
SQL Server
-
PostgreSQL
默认值
COMPRESSDELETES
语法
{COMPRESSDELETES | NOCOMPRESSDELETES [FETCHMISSINGCOLUMNS]}
COMPRESSDELETES
导致 Extract 仅将主键写入到线索以便执行 DELETE 操作。这是默认设置。该键提供了足够的信息来删除正确的目标记录,同时限制必须处理的数据量。
NOCOMPRESSDELETES [FETCHMISSINGCOLUMNS]
NOCOMPRESSDELETES 将所有列发送到线索。当表定义不包含主键或唯一索引,或者使用 KEYCOLS 选项 TABLE 定义替代键时,这将成为默认值。无论是否存在实际密钥,KEYCOLS 选项都会将指定的列写入线索。有关 KEYCOLS 选项的更多信息,请参见 KEYCOLS (columns) 。
对于 SQL Server,IMAGE、NTEXT 和 TEXT 数据类型的列将写入为删除操作的 NULL 值。有关此限制的更多信息,请查看以下 Microsoft 文档中的“大型对象数据类型”内容:
https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/cdc-capture-instance-ct-transact-sql?view=sql-server-ver15
使用冲突检测和解决 (Conflict Detection and Resolution,CDR) 功能时,也需要 NOCOMPRESSDELETES。请参阅 Oracle GoldenGate Microservices 文档中的自动冲突检测和解决和手动冲突检测和解决。
FETCHMISSINGCOLUMNS 仅对 Oracle AI Database 有效。它导致在执行 DELETE 操作时,从数据库中只提取所支持的 数据类型的值。这些数据类型包括 LOB、UDT、LONG 和一些 XMLType 列。有关提取(而不是直接从重做流捕获)支持的列的详细信息,请参阅下游提取。提取的列将作为 DELETE 记录的一部分显示在线索文件中。如果 NOCOMPRESSDELETES 用于不带 FETCHMISSINGCOLUMNS 选项的 Oracle AI Database 数据,则只有可以从日志中读取(不提取)的 LOB 数据将包括在线索的 DELETE 操作中。