为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.8
- 【问题描述】:我们系统有个批量导入功能,一次性导入87w数据记录时,报“[ERR] 8229 - TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction”错误提示,导入大批量数据时没法使用事务功能吗?
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
请确认下,这个环境使用的是否悲观锁模式
如果开启了悲观锁,请确认下 tidb server 参数 max-txn-ttl
的配置,默认情况下该参数为 10 min ,即允许的悲观事务运行的最长时间。出现上面的报错,可能是因为 87w 的数据导入的执行时间即将超出该参数限制。建议将大事务进行拆分成若干小事务,提高事务提交成功率,降低回滚的代价或适当调整相关参数。文档参考链接如下:
https://docs.pingcap.com/zh/tidb/stable/pessimistic-transaction#常见问题
https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#max-txn-ttl
经过对生产环境确认,目前是默认的悲观锁模式,通过修改 max-txn-ttl
的配置,由默认的10分钟改为30分钟已解决,非常感谢!
请问如何查看系统的事务是 悲观锁模式,还有如何修改 max-txn-ttl 的参数设置呢?
哦,我找到了,show variables like ‘tidb_txn_mode’ 可以查看事务模型,值为 pessimistic 表示悲观的,感谢感谢
有问题可以随时提新帖子咨询哟~