Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >waiting for table metadata lock的一种解决方法

waiting for table metadata lock的一种解决方法

原创
作者头像
于航
修改于 2019-08-10 08:05:00
修改于 2019-08-10 08:05:00
10K0
举报

问题描述

MySQL进行alter table等DDL操作时,有时会发现对某个表的任何操作都被阻塞,包括读,报错如下图所示

业务报错
业务报错

然后show process list可以看到大量的Waiting for table metadata lock的等待场景。

代码语言:txt
AI代码解释
复制
select * from information_schema.processlist order by time desc limit 10;
实例活动线程
实例活动线程

原因分析

这种现象的一个可能的原因是某个事务持有着这个表的元数据锁,需要把这个事务找出来并kill掉,使其回滚,那么alter table和其后续被阻塞的操作包括读等才会顺利进行下去。接下来我们去查询哪些事务没有提交。

代码语言:txt
AI代码解释
复制
select * from INNODB_RTX order by trx_started desc limit 10\G;
未提交事务信息
未提交事务信息

解决方案

找到这两个事务之后,kill即可释放其占有的元数据锁,后续阻塞的操作将会正常继续

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【MySQL】metadata lock问题
MySQL使用DML来管理对数据库对象的并发访问,并确保数据一致性。DML不仅适用于表,还适用于模式和存储程序(过程、函数、触发器和计划的事件)
用户5522200
2020/06/11
1.5K0
架构师技能5:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
我们码农平时大多数时间都在撸码或者撸码的路上,很少关注mysql的一些底层原理,当出现问题时没能力第一时间解决问题,出现问题后不去层层剖析问题产生的原因,后续也就可能无法避免或者绕开同类的问题。因此不要单纯做Ctrl+c和Ctrl+V,而是一边仰望星空(目标规划),一边脚踏实地去分析每个问题。 在mysql系列专栏里面,我深入浅出的总结了mysql相关知识,感兴趣的话可以去阅读,有问题就可以随时相互交流学习。
黄规速
2022/04/14
9840
架构师技能5:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
【MySQL经典案例分析】 Waiting for table metadata lock
2018年某个周末,接到连续数据库的告警,看到too many connection的报错信息,基本上可以把问题定位在...
迪B哥
2018/12/06
4.3K0
MySQL出现Waiting for table metadata lock的场景浅析
在进行alter table操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,也会在Opening tables的阶段进入Waiting for table metadata lock的队列。如果是产品环境的核心表出现了这样的锁等待队列,就会造成灾难性的后果。
星哥玩云
2022/08/17
7570
MySQL出现Waiting for table metadata lock的场景浅析
alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久。 官网的一段话,可以理解下 http://dev.mysql.com/doc/refman/5.5/en/metadata-locking.html 8.10.4. Metadata Locking MySQL 5.5.3 and up uses metadata locking to manage access to objects (tables,
小小科
2018/05/03
3.3K0
alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
MySQL5.7+查看Waiting for table metadata lock 锁情况
Waiting for table metadata lock 这个mdl锁,我们最常见,这篇先拿它开刀。
保持热爱奔赴山海
2020/07/27
3.6K0
MySQL5.7+查看Waiting for table metadata lock  锁情况
Waiting for table metadata lock问题处理
在使用mysql的时候,我们有时会碰到Waiting for table metadata lock的锁等待。但是这个锁等待比较特殊,在innodb_lock_wait和show engine innodb status 表里面都查不到。
老叶茶馆
2020/06/24
1.6K0
突发状况,数据库表被锁,抓瞎了?
在程序员的职业生涯中,总会遇到数据库表被锁的情况,前些天就又撞见一次。由于业务突发需求,各个部门都在批量操作、导出数据,而数据库又未做读写分离,结果就是:数据库的某张表被锁了!
程序新视界
2022/05/13
1.2K0
MySQL 8.0.35目前仍不支持ALTER TABLE ...NOWAIT功能
答:MDL(元数据表锁),就如同我们打开一个EXCEL文档时,用户A正在翻阅,此时用户B要增加一列。那么用户B要等待用户A翻阅完,才可以增加,否则用户A查询的数据就会不一致,不符合ACID事务四大特性。
贺春旸的技术博客
2023/11/23
4300
pt-online-schema-change使用
如果说你的数据量并发量不大,或者你的数据量很少没有到千万级别,也许pt-osc、gh-osc,online-ddl这些工具都用不着。但是,如果你的数据量很大,数据又很热。如果你没有这些工具,你可能无法完成对一个数据库新增一个字段或者任何一个简单的DDL语句。
chengcheng222e
2021/11/03
9200
pt-online-schema-change使用
DBBrain最佳实践:未提交事务的处理与应对
DBBrain 上经常会有用户来咨询“未提交事务”的事件会有什么问题,该如何处理等。其实这个问题的影响属于可大可小,所以正好来专门分析一下,避免因为轻视了这个问题导致严重的业务故障。
王文安@DBA
2022/03/03
2.9K2
DBBrain最佳实践:未提交事务的处理与应对
MetaData Lock 之三
一 简介 通过前面两篇文章的介绍,相信读到这里的各位对MDL 锁已经有了比较深入的了解了,本文将结合理论知识介绍几组MDL 锁的案例。 二 常见MDL 锁的场景 1 Waiting for global read lock 我们先构造一个Waiting for global read lock场景: session1: alter table t1 add c3 bigint; //大表执行需较长时间 session2: set global read only=on; //等待 查看
用户1278550
2018/08/09
6960
Mysql数据库死锁挂起的处理方法
MySQL在进行一些alter table等DDL操作时,如果该表上有未提交的事务则会出现 Waiting for table metadata lock,
码客说
2019/10/21
3K0
生产运维脚本引发的 MDL 锁故障排查之旅
作者:何文超,分享 MySQL 和 OceanBase 相关技术博文。 个人博客【CSDN | 雅俗数据库】
爱可生开源社区
2025/05/21
800
生产运维脚本引发的 MDL 锁故障排查之旅
MySQL在线DDL修改表结构的简单经验分享
摘 要 在线DDL修改生产环境的大表一直是运维、DBA一个很头痛的问题,本文分享一些相关经验,希望对还在头痛的同学能有所帮助,当然更希望路过的大神,如果有更靠谱的方案能够指点一二,不吝赐教。 一、故障背景 内部故障群反馈:XX 系统卡住不可用了,请帮忙看看; 排查发现是有一个 alter 修改数据库的表结构的变更,出现了大量的 MDL 锁,导致服务不可用,最后通过 kill 掉这个 alter 恢复了服务。当然, 这个 alter 需求也就暂时搁置了。 业务需求的变更肯定还是要继续执行的,因此就有了各种
张戈
2018/03/26
3.4K0
MySQL在线DDL修改表结构的简单经验分享
MetaData Lock 之二
一 简介 上一篇文章 《MetaData Lock 之一》 简单的介绍了MySQL 引入MDL 的前因后果,本文深入了解MDL的实现原理和运行机制。
用户1278550
2018/08/09
7140
mysql常见错误之Waiting for table metadata lock的解决方法
查询某一个表时,一直没有显示数据,于是就show processlist; 发现有表已经被锁了,关掉了之前的查询语句可以看到 这时候需要查看未提交的事务 select trx_state, trx_s
海涛
2019/09/12
2.8K0
mysql常见错误之Waiting for table metadata lock的解决方法
有爱有恨的MDL锁
MySQL 5.5 中就引入了metadata lock(元数据锁)。用于对管理 database objects(数据库对象)的并发访问,保证数据的一致性。
田帅萌
2018/08/14
6260
有爱有恨的MDL锁
MOP 系列|MOP 三种主流数据库常用 SQL(二)
MOP 不用多说,指的就是 MySQL、Oracle、PostgreSQL 三种目前最主流的数据库,MOP 系列打算更新 MOP 三种数据库的索引知识、高可用架构及常用 SQL 语句等等,上面已经更新了 MOP 索引相关的文章,今天打算整理一下这三种数据库的常用 SQL 知识,由于文章过长,今天更新中间的一篇之 MySQL 篇。第一篇 Oracle 相关的详见下方链接:MOP 系列|MOP 三种主流数据库常用 SQL(一)。
JiekeXu之路
2024/05/28
1210
MOP 系列|MOP 三种主流数据库常用 SQL(二)
Mysql 数据库 超时和锁定
昨天项目中遇到部分服务一直是pending状态,排查了代码和重启了服务都没能解决问题,于是从数据库开始排查。
chuchur
2022/10/25
5.2K0
推荐阅读
相关推荐
【MySQL】metadata lock问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档