数据不一致怎么办?
-
简述
数据迁移同步过程中,数据不一致的原因较多,从我们的认知来看,可能包含以下原因:
- 数据约束冲突,比如对端主键、唯一键、外键等约束冲突
- 对端有数据写入
- 自定义代码或者有数据过滤
- 特殊场景、负载下触发的工具 bug
- 特殊数据、结构触发的工具 bug
排查步骤
- 找到 1~5 条确认不一致的数据
- 对比数据所在数据库源端和目标端表结构,确认是否可能为约束冲突
- (1)查找数据在源端审计日志(可选)、变更日志(如binlog)中是否存在
- (2)查找数据在 CloudCanal 任务 apply_commit.log 中是否存在
sidecar 容器:/home/clougence/logs/cloudcanal/tasks/${taskName}/apply_commit.log
日志格式: 事件类型$dbName$schemaName$tableName$主键值$对端数据源响应时间(单位ms) - (3)查找数据在目标端审计日志(可选)、变更日志(如binlog)中是否存在
- (1)、(2)、(3)部均可查到(且可对上数据),则怀疑对端有数据写入
- (1)、(2)可查到,(3)查不到,则怀疑是否有约束冲突、特殊负载、特殊结构导致丢数据
- (1)可查到,(2)、(3)均查不到,怀疑工具 bug
- (1)、(2)、(3)均查不到,怀疑对端有数据写入
Copyright © 2020 ClouGence, Inc.备案号:浙ICP备20007605号-2