本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以确保准确地将您的数据从源迁移到目标。如果为任务启用验证,则在对表执行满载后立即 AWS DMS 开始比较源数据和目标数据。有关任务数据验证、其要求、其数据库支持的范围以及它报告的指标的更多信息,请参阅AWS DMS 数据验证。有关如何使用任务配置文件来设置任务设置的信息,请参阅任务设置示例。
数据验证设置及其值包括:
-
EnableValidation
– 在设置为 true 时,启用数据验证。否则,将为任务禁用验证。默认值为 False。 -
ValidationMode
– 控制 DMS 如何根据源表验证目标表中的数据。 AWS DMS 提供该设置是为了保证未来的可扩展性。当前,默认且唯一有效的值是ROW_LEVEL
。 AWS DMS 验证源表和目标表之间的所有行。 -
FailureMaxCount
– 指定在暂停任务的验证之前可验证失败的记录的最大数目。默认值是 10000。如果您希望验证继续而不管验证失败的记录数如何,请将此值设置为大于源中记录数的值。 -
HandleCollationDiff
– 如果将此选项设置为true
,则在识别要比较的源记录和目标记录时,验证会考虑 PostgreSQL 和 Microsoft SQL Server 端点中的列排序规则差异。否则,将忽略列排序规则中的任何此类差异以进行验证。列排序规则可以规定行的顺序,这对于数据验证很重要。将HandleCollationDiff
设置为 true 可自动解析这些排序规则差异并防止数据验证中出现误报。默认值为false
。 -
RecordFailureDelayInMinutes
– 指定报告任何验证失败详细信息之前的延迟(以分钟为单位)。 -
RecordFailureDelayLimitInMinutes
– 指定报告任何验证失败详细信息之前的延迟。通常, AWS DMS 使用任务延迟来识别更改的实际延迟,以使其成为目标来防止误报。此设置会覆盖实际延迟值,并允许您在报告任何验证指标之前设置更高的延迟。默认值是 0。 -
RecordSuspendDelayInMinutes
– 指定根据FailureMaxCount
中设置的错误阈值而暂停验证表之前的延迟时间(以分钟为单位)。 -
SkipLobColumns
— 当此选项设置为时true
,将 AWS DMS 跳过任务验证中表中所有 LOB 列的数据验证。默认值为false
。 -
TableFailureMaxCount
– 指定在暂停表的验证之前可验证失败的、一个表中的最大行数。默认值是 1000。 -
ThreadCount
— 指定验证期间 AWS DMS 使用的执行线程数。每个线程都从源和目标中选择 not-yet-validated数据进行比较和验证。默认值是 5。如果设置ThreadCount
为更高的数字,则 AWS DMS 可以更快地完成验证。但是, AWS DMS 随后将执行更多同步查询,这将消耗源和目标上的更多资源。 -
ValidationOnly
– 当该选项设置为true
时,任务会执行数据验证,而不执行任何数据迁移或复制。默认值为false
。创建任务后,您将无法修改ValidationOnly
设置。必须TargetTablePrepMode将迁移类型设置为
DO_NOTHING
(仅限验证的任务的默认值),并将 “迁移类型” 设置为以下选项之一:-
满载-在 AWS DMS 控制台中将任务迁移类型设置为迁移现有数据。或者,在 AWS DMS API 中将迁移类型设置为满载。
-
CDC – 在 AWS DMS 控制台中将任务迁移类型设置为仅复制数据更改。或者,在 AWS DMS API 中将迁移类型设置为 CDC。
无论选择哪种迁移类型,在仅限验证的任务中,实际上都不会迁移或复制数据。
有关更多信息,请参阅 仅验证任务。
重要
该
ValidationOnly
设置是不可变的。创建任务后,无法修改该任务的内容。 -
-
ValidationPartialLobSize
– 指定是否要对 LOB 列进行部分验证,而不是验证存储在该列中的所有数据。当只迁移一部分 LOB 数据而不是整个 LOB 数据集时,可能会发现这很有用。该值以 KB 为单位。默认值是 0,这意味着 AWS DMS 验证所有 LOB 列数据。例如,"ValidationPartialLobSize": 32
表示 AWS DMS 仅验证源和目标中列数据的前 32KB。 -
PartitionSize
– 指定要从源和目标读取的记录的批量大小,以便进行比较。默认值是 10000。 -
ValidationQueryCdcDelaySeconds
– 每次更新 CDC 时,源和目标上验证查询首次延迟的时间长度。当迁移延迟较长时,这可能有助于减少资源争用。仅限验证的任务会自动将此选项设置为 180 秒。默认值是 0。
例如,以下 JSON 支持使用两倍于默认线程数的线程进行数据验证。它还解释了由 PostgreSQL 终端节点中的列排序规则差异导致的记录顺序差异。此外,它还提供验证报告延迟,以考虑处理任何验证失败所需的额外时间。
"ValidationSettings": {
"EnableValidation": true,
"ThreadCount": 10,
"HandleCollationDiff": true,
"RecordFailureDelayLimitInMinutes": 30
}
注意
对于 Oracle 端点, AWS DMS 使用 DBMS_CRYPTO 进行验证。 BLOBs如果您的 Oracle 终端节点使用 BLOBs,请向访问 Oracle 终端节点的用户账户授予 DBMS_CRYPTO execute
权限。为此,运行以下语句。
grant execute on sys.dbms_crypto to
dms_endpoint_user
;