使用analyze表的时候报错1105 - commit TS must be greater or equal

【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

这个错误通常是由于 TiDB 的事务时间戳(commit TS)小于或等于当前系统的时间戳导致的。在 TiDB 中,事务时间戳用于保证数据的一致性和隔离性。当执行 ANALYZE TABLE 语句时,TiDB 会生成一个新的事务,并为该事务分配一个时间戳。然而,如果该时间戳小于或等于当前系统的时间戳,就会触发该错误。

为了解决这个问题,您可以尝试以下几个步骤:

  1. 确保您的系统时间是准确的。请检查 TiDB 和 TiKV 节点上的系统时间,并确保它们与实际时间一致。
  2. 如果您的系统时间是正确的,但仍然遇到该错误,请尝试重启 TiDB 和 TiKV 节点。有时候,重启节点可以解决时间戳同步的问题。
  3. 如果问题仍然存在,请检查 TiDB 配置文件中的 tikv-client.commit-timestamp 参数的设置。确保该参数的值大于当前系统的时间戳。

如果您仍然遇到问题,我建议您查阅 TiDB 官方文档中关于 ANALYZE TABLE 的章节,以获取更多关于该错误的详细信息和解决方案。


时间可以确定是准的

正式环境不能随便重启

tidb集群各主机时间同步吗?理论上pd分配tso不会回退

能说下要怎么看吗?因为我不是dba没有权限,最好能有个文章让她们看下

让他们自己来社区提问~


用这两个命令取获取下 pd 中 tso 的自然时间,然后 select now 查看下当前 tidb-server 时间对比下。

军哥的方法对的

试试session级 tidb_enable_async_commit=off 然后重新执行统计信息收集

tidb_enable_1pc=off session把这个也加上试试

重新收集统计信息

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