本文介绍如何在数据库传输服务控制台配置数据校验任务,帮助您在不停服的情况下对源端和目标端的差异数据进行校验和检查,可以及时发现数据或结构不一致等问题。
数据校验任务支持通过全量内容校验、全量行数校验和结构校验三种校验方式检验源端和目标端的差异数据,该三种校验方式的具体区别如下表所示:
校验方式 | 全量内容校验 | 全量行数校验 | 结构校验 |
---|---|---|---|
描述 | 该校验方式可以对比较两个数据库或数据实体之间的全部数据内容。全量内容校验过程可以确保所有的数据值都一致,并且数据的精度和完整性得到保障。 | 该校验方式仅能简单地对比源数据库和目标数据库中的总行数是否一样。该校验方式快速且有效,能快速发现数据的丢失或重复添加等问题。 | 校验方式可以检查数据结构的一致性,如表的列、数据类型、主键和索引等是否相同。该校验方式可以确保源数据库和目标数据库的结构一致性。 |
限制 |
|
|
|
数据校验任务执行时,只能有一个校验任务在运行,多个校验任务可能会增加源端和目标端数据库的负载。
在迁移或同步过程中,请勿进行以下操作,否则可能会导致校验结果不一致:
对源端数据库做 DDL 操作。
请勿对目标数据库进行写入操作。
当任务完成全量迁移或全量初始化时校验任务才开始校验数据。
DTS 不会校验既没有主键约束也没有唯一约束的数据。
如果同步或迁移任务进行重启操作(例如启动暂停后的任务),则任务中的数据校验任务会自动终止,且任务状态变更为已完成,如果需要对数据进行数据校验,您需要重新创建数据校验任务。
在执行校验任务前需评估源端和目标端的数据库性能,建议您在业务低峰期执行数据校验(例如源库和目标库的 CPU 负载在 30% 以下)。因为 DTS 在进行数据校验时将占用源库和目标库一定的读资源,可能会导致数据库负载上升。在数据库性能较差、规格较低或业务量较大的情况下,可能会加重数据库的压力,甚至导致数据库服务不可用。