数据验证任务设置 - AWS Database Migration Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

数据验证任务设置

您可以确保准确地将您的数据从源迁移到目标。如果为任务启用验证,则在为表执行完全加载后,AWS DMS 立即开始比较源和目标数据。有关任务数据验证、其要求、其数据库支持的范围以及它报告的指标的更多信息,请参阅AWS DMS data validation

数据验证设置及其值包括:

  • EnableValidation – 在设置为 true 时,启用数据验证。否则,将为任务禁用验证。默认值为‘false’。

  • FailureMaxCount – 指定在暂停任务的验证之前可验证失败的记录的最大数目。默认值是 10,000。如果您希望验证继续而不管验证失败的记录数如何,请将此值设置为大于源中记录数的值。

  • HandleCollationDiff – 当此选项设置为 true当标识要比较的来源和目标记录时,验证说明Postgreshirt终点的列整理差异。否则,将忽略列排序规则中的任何此类差异以进行验证。在 PostgreSQL 终端节点中,列排序规则可以规定行的顺序,这对于数据验证很重要。将 HandleCollationDiff 设置为 true 可自动解析这些排序规则差异并防止数据验证中出现误报。默认值为 false

  • RecordFailureDelayLimitInMinutes – 指定报告任何验证失败详细信息之前的延迟。通常,AWS DMS 使用任务延迟来识别更改的实际延迟,以使其成为目标来防止误报。此设置会覆盖实际延迟值,并允许您在报告任何验证指标之前设置更高的延迟。默认值是 0。

  • SkipLobColumns – 当此选项设置为 true, AWS DMS 跳过任务验证的表中所有LOB列的数据验证。默认值为 false

  • TableFailureMaxCount – 指定在暂停任务的验证之前可验证失败的表的最大数目。默认值是 1,000。如果您希望验证继续而不管验证失败的表数如何,请将此值设置为大于源中表数的值。

  • ThreadCount – 指定 AWS DMS 在验证期间使用的执行线程数。每个线程从源和目标中选择尚未验证的数据来进行比较和验证。默认值是 5。如果您将 ThreadCount 设置为更大的数字,则 AWS DMS 可以更快地完成验证。但是,AWS DMS 随后将执行更多同步查询,这将消耗源和目标上的更多资源。

  • ValidationOnly – 当此选项设置为 true任务在不执行任何数据迁移或复制的情况下预览数据验证。默认值为 false。但是 ValidationOnly 设置为 true 特别适用于以下使用案例:

    • 在没有启用验证的情况下,将数据迁移到单独的满载任务中后,您可以验证数据,而无需执行另一个满载。只需创建和运行另一个任务 ValidationOnly 设置为 true.

    • 在满载任务期间,仅在初始装载完成后开始验证。但是,通过创建单独的 ValidationOnly 任务,您可以在实际移动之前看到早期验证结果并解决任何故障 全部 数据。这种方法比将所有源数据迁移到目标后等待解决失败更有效。

    要设置此选项,请设置任务 迁移类型仅复制数据变更 在 AWS DMS 话务台。或者,在 AWS DMS API 中,将迁移类型设置为 cdc

  • ValidationPartialLobSize – 指定是否要对LOB列执行部分验证,而不是验证存储在列中的所有数据。当您只迁移部分LOB数据,而不是整个LOB数据集时,您可能会发现这一点很有帮助。值为KB单位。默认值为0,这意味着 AWS DMS 验证所有LOB列数据。例如, "ValidationPartialLobSize": 32 意味着 AWS DMS 仅验证来源和目标中的前32KB列数据。

例如,以下 JSON 支持使用两倍于默认线程数的线程进行数据验证。它还解释了由 PostgreSQL 终端节点中的列排序规则差异导致的记录顺序差异。此外,它还提供验证报告延迟,以考虑处理任何验证失败所需的额外时间。

"ValidationSettings": { "EnableValidation": true, "ThreadCount": 10, "HandleCollationDiff": true, "RecordFailureDelayLimitInMinutes": 30 }
注意

对于 Oracle 终端节点,AWS DMS 使用 DBMS_CRYPTO 验证 BLOB。如果 Oracle 终端节点使用 BLOB,则必须向用于访问 Oracle 终端节点的用户账户授予 DBMS_CRYPTO 的执行权限。可通过运行以下语句来执行该操作。

grant execute on sys.dbms_crypto to dms_endpoint_user;