执行查询事务报错Lock wait timeout exceeded, try restarting transaction

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
查询事务报错,请问是什么问题呢?

麻烦提供下ob版本,和show variables like ‘%timeout%’;

推荐使用obdiag工具做下诊断。https://www.oceanbase.com/docs/common-obdiag-cn-1000000000441302

ob版本:4.2.1社区版
show variables like ‘%timeout%’ 结果如下:
image

OCP的top sql 和slow sql 看下是否有耗时很大sql。确认下sql是否合理。

这个就是 常见的 锁等待超时。
并发的时候 事务之间出现冲突。

建议到 oceanbase.gv$sql_audit 里 定位报错的 sql,看到具体的sql,让业务先分析。

查询语句的类型是什么

select * from gv$ob_sql_audit where RET_CODE like ‘%6003%’ or RET_CODE like ‘%6006%’;

lock wait 的错误码对应的是6003和6006;