功能描述
数据一致性校验,即 DTS 对数据迁移的源库和目标库的表数据进行对比,并给出对比结果和不一致详情,方便用户快速确定业务的割接时间。
注意事项
1. 数据一致性校验的范围,仅对比源数据库选择的对象和迁移到目标数据库的对象,如果用户在迁移过程中向目标库进行数据写入,则这部分数据不包含在校验范围内。
2. 数据一致性校验任务可能会增加源数据库实例的负载,因此请在业务低峰期进行操作。
3. 数据一致性校验的任务可以多次创建并执行,但同一时刻只能有一个校验任务处于“运行中”,即上一个校验任务结束或者终止后,下一个校验任务才能启动。
4. 如果在数据一致性校验任务还未结束时,用户选择完成或者终止 DTS 任务,则数据一致性校验任务会失败。
5. 创建一致性校验时,系统会自动在目标端中创建
dts_verify_result
库,用于记录一致性校验相关内容。dts_verify_result
库下创建的表样式如下:diff_5xxxxxxxx4231 :保存校验出的不一致数据
diff_meta_5xxxxxxxxx4231:保存校验出不一致的元数据
result_5xxxxxxxxx4231 :记录每个阶段校验完成后的结果
status_5xxxxxxxxx4231:记录校验进度
6. DTS 链路目标端为圣保罗地域时,暂时不支持一致性校验。
约束限制
当前校验任务对 DDL 操作不感知,如果在迁移过程中,用户对源库做了 DDL 操作,会出现校验结果不一致,需要用户重新发起校验任务才能得到准确的对比结果。
校验方案
DTS 校验对比数据包含全量迁移的数据及其迁移过程中源端又新增的增量迁移数据。全量数据校验逐行对比源端与目的端的数据,增量数据校验线程一旦发现全量数据对比完成,立即进入增量数据校验阶段,获取全量数据开始时的时间戳(全量数据开始时会同步拉取增量日志),循环获取源端增量的操作日志 Oplog,对比源端和目的端差异。当目的端与源端数据对比落后小于10s后结束对比,输出校验结果。