MySQL innodb waiting for table level lock 问题解决

场景

某客户告知数据库(MySQL5.6)发生锁,数据无法增删改,已严重影响业务。

问题排查

登录数据库检查数据库状态如下


table level lock???都是innodb存储引擎这种状态不该出现啊。会不会是人为加了锁?

果然。查看innodb的状态发现有一个事务持有大量的锁。

kill掉该事物,数据库状态正常。
通过时间戳推算得知在该时刻进行了一个逻辑备份,添加了add locks参数,未完成被KILL掉了,unlock未执行导致多表被锁。

模拟场景复现

复现倒是挺简单的,就是一个连接执行lock table xxx read,在对该表的增删改操作就变成了waiting table level lock。但是这个是MySQL-5.6的表现,MySQL5.7表现为Waiting for table metadata lock。看来Waiting for table metadata lock在5.7又多了一种场景!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值