**

背景:

	现场同事电话反馈,核酸数据上报任务异常了,好几台服务器都显示报错。

问题:

报错主要原因是事务回滚了
com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: 
Lock wait timeout exceeded; try restarting transaction

排查

//当前运行的所有事务
SELECT * FROM information_schema.INNODB_TRX;
//当前出现的锁
SELECT * FROM information_schema.INNODB_LOCKs;
//锁等待的对应关系
SELECT * FROM information_schema.INNODB_LOCK_waits;

该事务被卡了10几个小时
在这里插入图片描述

查看全部线程

show  processlist;

发现这个线程一直卡在这里,于是去看了下这条sql语句,去查询了一下该表。
发现这个表数据量暴涨,7.1G,导致查询不动。这个表的增删改又比较频繁,所以就卡死了。
原因:定时删除的任务异常了,平时只保留7天的数据量。

解决:kill事务,清理表数据,转移到历史表,检查定时任务
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐