sync-diff-inspector 在数据不一致时直接报错退出

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
sync_diff_inspector_v5.3.0-8-gb1def77-dirty

【概述】 场景 + 问题概述
校验过程中,下游可能有数据变更,导致二分法核对数量时直接报错退出;
请问能否支持数量不一致时,不要直接异常退出,而是继续检验,返回数据不一致的结果

【备份和数据迁移策略逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】

【附件】

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

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

感谢反馈,能否在 github repo 下面提交相关 issue,会有研发同学关注你的问题哈。https://github.com/pingcap/tidb-tools/issues

1 个赞

请问上游是 MySQL 吗?sync_diff_inspector 对于 MySQL 和 TiDB 之间不支持在线校验,需要保证上下游校验的表中没有数据写入,或者保证某个范围内的数据不再变更,可以通过配置 range 来校验这个范围内的数据。

上游是MySQL,应该就是有数据写入导致的异常退出。
这种能够返回数据不一致吗?或者设置特殊的退出码呢?这样方便对结果进行处理

  • 上游数据有持续写入和修改这边生成的 diff 的修复 sql 也不准确。
  • 目前没有做特殊的错误码处理。需要的话可以到 repo 提 feature request

已提交,希望能增加MySQL快照读的配置项,以便解决大量的此类问题
https://github.com/pingcap/tidb-tools/issues/604

1 个赞

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。