在进行数据迁移时,使用tidb lightning全量迁移,然后用DM增量迁移,怎么保证数据的一致性?如果数据不一致我该怎么找到不一致数据?

【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 Like

你好 可以使用 sync-diff 工具来检查上下游的数据是否有不一致

https://docs.pingcap.com/zh/tidb/stable/sync-diff-inspector-overview

2 Likes

你这里提到的方案应该是:

  1. dumpling 导出全量数据,这里 dumpling 会有个 metadata 文件,代表导出数据的 pos.
  2. 使用 lightning 全量导入 1 步中的数据,采用 local 方式 linghtning 可以完成校验,保证数据一致
  3. dm 开始增量同步,增量同步的开始位置就是 1 步中的 metadata pos,这里 dm 的 checkpoint 会保证一致性

如果在以上哪个环节造成不一致,那就报 bug 吧。

官方 sync-diff 工具也可以进行上下游数据校验。

2 Likes

只能通过工具校验数据的一致性。手动修复不一致。

也可以直接用 dm 来进行全量加增量导入(all_mode)。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。