往tidb里面生成数据老报错,节点也正常跑着,有知道怎么回事的么

【 TiDB 使用环境】/测试
【 TiDB 版本】6.5
【复现路径】生成数据过程中
【遇到的问题:问题现象及影响】TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction
【资源配置】
【附件:截图/日志/监控】

事务过大,让你提交了。 悲观锁过期

1 个赞

请问这种不提交的话可以设置时间吗

做什么操作导致您的这种报错吗 ??

处理建议:
1、当遇到该报错时,建议确认下业务逻辑是否可以进行优化,如将大事务拆分为小事务。在未使用[大事务]的前提下,大事务可能会触发 TiDB 的事务限制。
2、 可适当调整相关参数,使其符合事务要求。

TTL manager has timed out
除了有不能超出 GC 时间的限制外,悲观锁的 TTL 有上限,默认为 1 小时,所以执行时间超过 1 小时的悲观事务有可能提交失败。这个超时时间由 TiDB 参数 [performance.max-txn-ttl]指定。
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-lock-conflicts#ttl-manager-has-timed-out

  1. tidb_lock_wait_timeout: 这个参数用于设置 TiDB 等待悲观锁的最长时间。如果等待时间超过该值,TiDB 会自动放弃等待,回滚事务并返回错误。你可以根据实际情况适当增加该参数的值,以减少悲观锁过期的风险。
  2. tidb_gc_life_time: 这个参数用于设置 TiDB 中自动 GC(垃圾回收)的时间间隔。通过适当调整该参数,可以让 TiDB 更及时地回收过期数据,减少锁的持有时间和过期风险。

用Navicat生成数据的时候

这个我看到了,想问下他这个默认一小时的配置怎么修改

update INFORMATION_SCHEMA.CLUSTER_CONFIG set VALUE =xxxxx where INFORMATION_SCHEMA.CLUSTER_CONFIG.KEY =‘performance.max-txn-ttl’;

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