数据不一致可能是以下原因导致,建议参考如下步骤排查处理:
1、请检查DTS任务是否有延迟,如果任务有延迟可能是部分数据还未写入到目标库导致,建议待任务无延迟后检查数据是否一致。
2、检查目标库是否有其他业务写入,如果有其他业务写入也会导致数据不一致。
3、检查配置任务前目标库是否清空,如果目标端存量数据未清空会导致数据不一致,建议根据业务需求酌情考虑清空目标库选择结构+全量+增量重新配置任务。
4、检查配置任务时是否只选择了增量模块,没有选择全量模块,如果没有选择全量模块,全量数据就不会同步到目标端,从而导致目标端没有全量数据,建议根据业务需求酌情考虑清空目标库选择结构+全量+增量重新配置任务。
5、检查配置任务时是否只选择了全量模块,没有选择增量模块,且任务结束后源端数据有变更。该场景下源端变更的数据不会同步到目标端,建议根据业务需求酌情考虑清空目标库选择结构+全量+增量重新配置任务。
6、检查目标库是否存在触发器,目标库中有触发器也会导致数据不一致,因为同步就是执行dml,执行完之后如果有trigger触发修改,数据也会不一致,建议在任务结构迁移完成后删除目标实例的触发器后重新启动任务,删除触发器详细参考
源库存在触发器时如何配置同步作业。
7、检查带迁移的表是否都具备主键或者唯一键,如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
注:如是DTS同步任务并且同步粒度是表,出现个别表不一致情况,可以修改同步对象,移除该对象重新进行同步。如果有大量表不一致建议考虑清理目标端,重新创建任务进行同步/迁移。