找出未提交的MySQL线程/事务
admin
2023-05-18 06:42:52
0

找出未提交的MySQL线程/事务:


SELECT * from information_schema.processlist;   这个能看到上面哪个SQL线程ID(下图的378号线程就是造成MDL锁的罪魁祸首)

找出未提交的MySQL线程/事务




SELECT trx_id,trx_state,trx_started,trx_mysql_thread_id,CURRENT_TIMESTAMP - trx_started AS RUN_TIME from information_schema.innodb_trx;

找出未提交的MySQL线程/事务


然后 kill 掉378 线程即可。




补充:

场景三:

通过show processlist看不到TableA上有任何操作,在information_schema.innodb_trx中也没有任何进行中的事务。这很可能是因为在一个显式的事务中,对TableA进行了一个失败的操作(比如查询了一个不存在的字段),这时事务没有开始,但是失败语句获取到的锁依然有效,没有释放。从performance_schema.events_statements_current表中可以查到失败的语句

官方手册上对此的说明如下:

If the server acquires metadata locks for a statement that is syntactically valid but fails during execution, it does not release the locks early. Lock release is still deferred to the end of the transaction because the failed statement is written to the binary log and the locks protect log consistency.

也就是说除了语法错误,其他错误语句获取到的锁在这个事务提交或回滚之前,仍然不会释放掉。because the failed statement is written to the binary log and the locks protect log consistency 但是解释这一行为的原因很难理解,因为错误的语句根本不会被记录到二进制日志。

处理方法:通过performance_schema.events_statements_current找到其sid, kill 掉该session. 也可以 kill 掉DDL所在的session.








相关内容

热门资讯

FBI悬赏136万元追捕美国前... 综合国是直通车、红星新闻5月16日报道,美国联邦调查局(FBI)悬赏20万美元(约合人民币136万元...
一升乳胶漆能刷多少平方米 最佳回答 一升乳胶漆其实并不怎么多,差不多也就是一升可乐瓶的那么大的瓶子能够装一瓶那么这样的乳胶漆...
电冰箱不制冷的原因 最佳回答 电冰箱不制冷的原因可能就是电冰箱电源线损坏,导致电冰箱无法正常工作,遇到这种情况,我们只需...
电视内存多大的合适 电视内存多大的合适:电视内存一般,还是选择至少要1.5g到2g,运行内存存储内存要至少16g或者32...
天然气热水器多大容量比较合适呢 天然气热水器多大容量比较合适呢1、根据家里的面积和用水量来看,如果是共一个厨房两个卫生间,需要选择1...
燃气热水器排烟管可以走烟道吗 燃气热水器排烟管可以走烟道吗:燃气热水器排烟管不可以走公共烟道的,一般厨房都会装有公共烟道,是专门为...
马尔代夫5人潜水身亡,一军人在... 据马尔代夫媒体16日报道,马尔代夫国防军一名军人在搜救失踪潜水人员时身亡。报道说,遇难军人名为穆罕默...
世卫组织:非洲埃博拉疫情构成“... 新华社日内瓦5月17日电 世界卫生组织17日宣布,刚果(金)和乌干达出现的埃博拉疫情已构成“国际关注...
三大运营商即将免月租?官方回应 最近,大家在各大社交平台都可能刷到过这样一条消息——三大运营商即将全面推出免月租、按量计费套餐。有不...
利好来了!刚刚,上海传出重磅消... 跟算力产业相关的一则消息,突然刷屏! 据媒体报道,上海电信15日面向上海电信用户正式推出Token算...