今年上班第一天就遇到了生产事故~跟大家分享下处理流程。
有1300+的事务在running状态,同时后续数据库有新的请求进来
3.初步怀疑是数据库中的长事务导致数据库锁异常,锁请求没有释放导致后续的程序异常。zabbix中的锁信息:
4.手工kill掉长事务进程,发现这个时候数据库已经不能正常释放连接数了,而新的请求还在不断的加多。数据库连接数已经涨到1600+。5.由于业务方压力,只能强行重启数据库释放资源后问题暂时解决。
发现数据库中14:05的时候出现了异常链接,同时应用报锁超时错误。通过查看事务等待可以发现801事务阻塞了后续的update请求
同时innodb的状态信息可以看到该异常事务锁住了20行记录。
手工kill掉进程后,程序恢复正常。新闻热点
疑难解答