java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,因为他们也会在Opening tables的阶段进入到Waiting for table metadata lock的锁等待队列。如果是生产环境的核心表出现了这样的锁等待队列,就会造成灾难性的后果,比如电商中的订单表。
遇到该种情况的解决方法:
1、show processlist
通过show processlist可以看到TableA上有正在进行的操作(包括读),此时alter table语句无法获取到metadata 独占锁,会进行等待。找到sid, 对应字段为id,直接kill
2、select * from information_schema.innodb_trx\G
通过select * from information_schema.innodb_trx\G
找到未提交的事务的sid, 对应字段为trx_mysql_thread_id, 直接kill
3、select * from performance_schema.events_statements_current;
通过show processlist看不到TableA上有任何操作,在information_schema.innodb_trx中也没有任何进行中的事务。这很可能是因为在一个显式的事务中,对TableA进行了一个失败的操作(比如查询了一个不存在的字段),这时事务没有开始,但是失败语句获取到的锁依然有效,没有释放。从performance_schema.events_statements_current表中可以查到失败的语句。
找到sid,对应字段为thread_id, 直接kill
4、lock_wait_timeout
最好的方式是设置过期时间,避免长时间metadata 锁等待
java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock相关推荐
- 【MySQL经典案例分析】 Waiting for table metadata lock
本文由云+社区发表 一. 问题是这样来的 2018年某个周末,接到连续数据库的告警,告警信息如下: 二. 苦逼的探索过程 1.总体的思路 看到too many connection的报错信息,基本 ...
- 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
开篇语录:以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来.当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升 ...
- mysql出现waiting_MySQL出现Waiting for table metadata lock的原因以及解决方法
MDL简述 为了在并发环境下维护表元数据的数据一致性,在表上有活动事务(显式或隐式)的时候,不可以对元数据进行写入操作.因此从MySQL5.5版本开始引入了MDL锁(metadata lock), ...
- MySQL执行查询语句时出现停滞状态,出现Waiting for table metadata lock的问题
背景:今天在用python往MySQL中写入数据时,出现程序启动后运行很久,发现没动静,一去客户端查询数据库,也发现查询语句出现停滞状态,怀疑是表被锁了,下面是这次问题的解决过程. 问题现象: 等了很 ...
- 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 执行命令: SHOW PROCESSLIST; 如果发现State 字段是:Waiting for tab ...
- alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久. 官网的一段话,可以理解下 http:// ...
最新文章
- CentOS中vsftp安装与配置
- 算法------------ 最长公共前缀
- Java单向链表操作详解
- linux 压缩和解压缩(zip/unzip)
- HDU - 4757 Tree(LCA+可持久化trie树)
- DM6446开发攻略:V4L2视频驱动和应用分析
- 300 秒带你吃透大数据!
- [other] 代码量代码复杂度统计-lizard
- 简书的假想用户场景以及不同用户各自需要解决的烦恼
- SVM 学习心得
- Linux 服务器时区、时间校准,定时校准脚本
- Dell Inspiron 14 3437装win7系统没有网卡驱动解决办法
- Foxit PDF Editor(福昕阅读器)中插入新的PDF空白页方法
- python获取本机IP地址
- 一文搞懂this指向
- 使用Vant组件库,van-filed配置手机号验证规则
- 山东大学计算机学院复试名单,山东大学2012计算机学院拟录取名单。
- React——相关js库以及使用React开发者工具调试
- C语言简介之进制转换,原码、反码、补码,位运算符,函数
- LaTex使用方法和技巧——以IEEE会议论文模板为例