diff时,有一个警告

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】4.0.12
【附件】

使用diff验证TiDB和MySQL数据一致性时,有这个警告:
[2021/08/18 15:03:09.722 +08:00] [WARN] [chunk.go:395] [“use tidb bucket information to get chunks failed, will split chunk by random again”] [“get chunk”=0] [error=“primary key on id in buckets info not found”] [errorVerbose="primary key on id in buckets info not found\ngithub.com/pingcap/errors.NotFoundf\ \t/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20201126102027-b0a155152ca3/juju_adaptor.go:117\ github.com/pingcap/tidb-tools/pkg/dbutil.GetBucketsInfo\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/dbutil/common.go:480\ github.com/pingcap/tidb-tools/pkg/diff.(*bucketSpliter).split\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/diff/chunk.go:301\ngithub.com/pingcap/tidb-tools/pkg/diff.getChunksForTable\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/diff/chunk.go:390\ github.com/pingcap/tidb-tools/pkg/diff.SplitChunks\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/diff/chunk.go:453\ github.com/pingcap/tidb-tools/pkg/diff.(*TableDiff).CheckTableData\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/diff/diff.go:251\ngithub.com/pingcap/tidb-tools/pkg/diff.(*TableDiff).Equal\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/pkg/diff/diff.go:157\ main.(*Diff).Equal\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/sync_diff_inspector/diff.go:621\ main.checkSyncState\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/sync_diff_inspector/main.go:83\ main.main\ \t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-tools/sync_diff_inspector/main.go:65\ runtime.main\ \t/usr/local/go/src/runtime/proc.go:203\ runtime.goexi

看了一下,这个警告是由于主键信息不在直方图中,数据同步执行完,信息不在直方图中,不应该吧,这个是为什么呢?

  • 这个是 sync_diff 获取 TiDB 这边的统计信息进行匹配的时候解析错误导致的。可以尝试一下收集一下相关对比表的 统计信息 再进行匹配。
  • 另外这块应该不会影响匹配的进行,会使用 random 模式进行 chunk 的拆分。
1 个赞

好的,谢谢,我analyze table后,diff了一下,还是一样的问题。

方便的话可以 analyze table 然后重现一下,上传一下校验报错的表的 统计信息。以及 sync_diff 的日志。我们这边可以接着分析一下。

diff.log (386.0 KB)
统计信息好像是空的。。

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