Waiting for table metadata lock
【问题描述】:Mysql5.6的主从环境,在主库上添加字段始终添加不了,一直没有返回值。
【排查分析】:
1、在测试环境上执行没有问题,很快就返回。因为数据量不大,也就10w左右(线上也是10w左右)
2、在执行alter语句时,在另外的终端通过show processlist
发现 有等待TML锁
3、通过如下sql查线程ID
SELECT distinct b.trx_id blocking_trx_id,
b.trx_mysql_thread_id 源头锁thread_id,
SUBSTRING(p. HOST, 1, INSTR(p. HOST, ':') - 1) blocking_host,
SUBSTRING(p. HOST, INSTR(p. HOST, ':') + 1) blocking_port,
IF(p.COMMAND = 'Sleep', p.TIME, 0) idel_in_trx,
b.trx_query blocking_query,
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) wait_time,
r.trx_query waiting_query,
l.lock_table waiting_table_lock
FROM information_schema.INNODB_LOCKS l
LEFT JOIN information_schema.INNODB_LOCK_WAITS w
ON w.requested_lock_id = l.lock_id
LEFT JOIN information_schema.INNODB_TRX b
ON b.trx_id = w.blocking_trx_id
LEFT JOIN information_schema.INNODB_TRX r
ON r.trx_id = w.requesting_trx_id
LEFT JOIN information_schema. PROCESSLIST p
ON p.ID = b.trx_mysql_thread_id
ORDER BY wait_time DESC;
如果没有返回值 ,使用下面的sql来查:
select i.trx_mysql_thread_id
from information_schema.innodb_trx i,(select id, timefrominformation_schema.processlistwheretime = (select max(time)frominformation_schema.processlistwherestate = 'Waiting for table metadata lock'and substring(info, 1, 5) in ('alter' , 'optim', 'repai', 'lock ', 'drop ', 'creat'))) pwhere timestampdiff(second, i.trx_started, now()) > p.timeand i.trx_mysql_thread_id not in (connection_id(),p.id);
根据返回的结果继续查相关的session:
select * from information_schema.processlist where id=104018;
可以根据情况对该会话进行处理。
转载于:https://blog.51cto.com/zhaowl/2343516
Waiting for table metadata lock相关推荐
- java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...
- 【MySQL经典案例分析】 Waiting for table metadata lock
本文由云+社区发表 一. 问题是这样来的 2018年某个周末,接到连续数据库的告警,告警信息如下: 二. 苦逼的探索过程 1.总体的思路 看到too many connection的报错信息,基本 ...
- MySQL出现Waiting for table metadata lock的原因以及解决方法
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...
- 【MySQL】MySQL出现Waiting for table metadata lock的原因、解决方法
Waiting for table metadata lock MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景 ...
- 【转】【MySql】Waiting for table metadata lock原因分析
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...
- 记一次MySQL中Waiting for table metadata lock的解决方法
记一次MySQL中Waiting for table metadata lock的解决方法 参考文章: (1)记一次MySQL中Waiting for table metadata lock的解决方法 ...
- alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久. 官网的一段话,可以理解下 http:// ...
- 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
开篇语录:以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来.当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升 ...
- MySQL执行查询语句时出现停滞状态,出现Waiting for table metadata lock的问题
背景:今天在用python往MySQL中写入数据时,出现程序启动后运行很久,发现没动静,一去客户端查询数据库,也发现查询语句出现停滞状态,怀疑是表被锁了,下面是这次问题的解决过程. 问题现象: 等了很 ...
最新文章
- JS 小数的常用处理方法
- birt脚本for循环语句_python循环语句(while amp; for)
- python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
- 在机器学习中,ground truth是什么意思?
- java 确定对象的引用_JVM学习笔记之了解对象存活判断和4种引用【三】
- thrift的lua实现
- js的eval代码快速解密
- 计算机原理实验交通灯自动控制系统设计,微机原理交通灯控制系统设计实验..doc...
- 实名寻人搜索引擎app_谷歌搜索引擎寻人
- [汇编] 在屏幕中央显示时钟
- 聊一下盲盒app开发 盲盒小程序开发
- 计算机科学导论 -- 第一章 绪论
- 从柯布-道格拉斯生产函数看云计算对传统软件工程的影响
- x2000 ffmpeg avcodec_send_packet
- 淘宝/天猫API接口,买家卖家订单信息获取
- 修改3389远程端口号
- Python爬虫:js加密实例-有道翻译
- 车载仪表android方案,基于NXP iMX8QM 汽车仪表+车载娱乐双作业系统解决方案
- 拍卖网html模板,html5织梦高端复古婚纱/影楼/摄影工作室网站模板
- Unity 2D游戏 粒子系统在Game窗口不显示