你上下游tidb实例的表是不是一直有数据变更?
如果是的话,你可能就需要使用 TiDB 的 snapshot 功能,开启的话会使用历史数据进行对比
snapshot = “386902609362944000”
你可以试试
你上下游tidb实例的表是不是一直有数据变更?
如果是的话,你可能就需要使用 TiDB 的 snapshot 功能,开启的话会使用历史数据进行对比
snapshot = “386902609362944000”
你可以试试
这个是在增量期间做的对比吗?
我试试
只有上游有改变,下游没有改变。snapshot是开启的,指定sanpshot还是会报错。
[data-sources.tidb_prd]
host = “xxxx”
port = xxxx
user = “xxxx”
password = “xxxx”
snapshot = “433408135904886975”
[data-sources.ubisql_prd]
host = “xxxx”
port = xxxx
user = “xxxx”
password = “xxxx”
snapshot = “433408135942111294”
是全量对比
是用sync-diff来做升级迁移吗?
那还是现在测试环境中看一下升级到4.x的最后一个版本是否可以,在逐步测试升级到最终版本。
4.0.0或许真的有一些未知的问题。
这太消耗时间了,还是想找到根本原因解决。
检查 sync-diff-inspector 配置文件中 isEqual1
和 isEqual2
的值是否正确,确保它们不会同时为 true。如果您使用了 TiUP 进行部署,可以使用以下命令查看当前的配置:
tiup cluster edit-config
看了下代码,大概是这个意思,sync-diff在对比时发现数据不一致,通过二分法进一步缩小不一致数据范围时,发现切分后的两段tableRange1与tableRange2的上下游checksum值与count行数一致,所以这表明这两段数据又是相同的,与前面逻辑不符,所以抛出来错了
建议:对比时建议上下游是静态数据,或者找到上下游数据一致的点位,通过snapshot指定点位
试了同样的sanpshot一样报错
没有这样的配置
本来就是为了动态对比的。
你是通过什么组件同步的呢?
cdc上下游对比数据请参考:https://docs.pingcap.com/zh/tidb/stable/ticdc-upstream-downstream-check#tidb-主从集群数据校验和快照读
binlog上下游对比数据与cdc类似,不过上下游点位取的是 tidb_binlog.checkpoint中的数据,上游取primary-ts,下游取secondary-ts
[tidb_binlog]>select * from tidb_binlog.checkpoint;
+---------------------+---------------------------------------------------------------------------------------------------------------------------------+
| clusterID | checkPoint |
+---------------------+---------------------------------------------------------------------------------------------------------------------------------+
| 6903935713660307316 | {"consistent":false,"commitTS":424409338031112213,"ts-map":{"primary-ts":424459453555802117,"secondary-ts":424459453555802117}} |
+---------------------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
使用drainer,也是上游取primary-ts,下游取secondary-ts,还是报错
估计是bug吧,毕竟是4.0.0的初始版本。想要彻底搞清楚缘由,要么费点功夫测试一下后续版本,要不就翻源码搞清楚内在逻辑。
开debug查呗