sync-diff-inspector check mysql to mysql

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

【概述】 场景 + 问题概述
使用工具 sync-diff-inspector 对 mysql 做数据一致性校验

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

【背景】 做过哪些操作
参考 https://github.com/pingcap/tidb-tools/issues/558 此处做的操作

【现象】 业务和数据库现象
一致性校验未通过
【问题】 当前遇到的问题
image
image
【业务影响】

【TiDB 版本】

【附件】
配置文件

Diff Configuration.

######################### Global config #########################

check-thread-count = 4
export-fix-sql = true
check-struct-only = false

######################### Databases config #########################
[data-sources.mysql1]
host = “127.0.0.1”
port = 3306
user = “admin”
password = “3slNW8BofuMX”
route-rules = [“rule1”]

[data-sources.tidb0]
host = “127.0.0.1”
port = 3306
user = “admin”
password = “3slNW8BofuMX”

[routes.rule1]
schema-pattern = “inspector_mysql_0”
table-pattern = “tb_emp1”
target-schema = “inspector_mysql_1”
target-table = “tb_emp1”

######################### Task config #########################

[task]
# 1 fix sql: fix-target-TIDB1.sql
# 2 log: sync-diff.log
# 3 summary: summary.txt
# 4 checkpoint: a dir
output-dir = “./output”

source-instances = ["mysql1"]

target-instance = "tidb0"

target-check-tables = ["inspector_mysql_1.tb_emp1"]
target-configs= ["config1"]

[table-configs.config1]

target-tables = [“inspector_mysql_1.tb_emp1”]

range = “id > 0”
index-fields = [“”]
ignore-columns = [“”,“”]
chunk-size = 0
collation = “”

软件版本

./bin/sync_diff_inspector -V
App Name: sync_diff_inspector v2.0
Release Version: v5.4.0-3-gb6d9cbe
Git Commit Hash: b6d9cbe5dff1f255d091c763b86cd6a05589bd65
Git Branch: master
UTC Build Time: 2022-03-02 06:07:08
Go Version: go1.16.4

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

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

1 Like

麻烦开启 debug 之后,再对比一次,然后给一下 sync_diff 的详细日志

1 Like

上游是不是有 inspector_mysql_1.tb_emp1,比较时也会被下游匹配到
https://docs.pingcap.com/zh/tidb/stable/route-diff#注意事项

2 Likes

log (15.9 KB)
这个是日志文件

应该不是 我用的一个数据库实例

应该是匹配到上游的库表了,你可以分两个实例再试一次


官方也有说明
https://docs.pingcap.com/zh/tidb/stable/sync-diff-inspector-overview

嗯 我验证下。 感谢

多实例是可以的。。 想追问下,为什么不支持在单实例内:joy:

我猜是这样一层逻辑,因为DM能将上游的分库分表汇总到tidb中内的一个表。
sync-diff-inspector 工具的初衷是用来协助比较上游mysql和下游的tidb的。所以肯定是要支持上述功能比较的。
上游存在下游的库表时他会认为上游是分库分表模式(sharding),统计的时候上游是2条数据,下游则是一条数据。

嗯 了解

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