首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    出现大量的Waiting for table flush导致业务表查询不了

    导读昨晚发现有大量的sql执行失败, 使用show processlist发现存在大量的Waiting for table flush状态的连接.如下图(下图为复现环境)就这么几个连接, 排除自己, 就只剩一个...select的了, 总不能是select导致的其它表Waiting for table flush吧, 我们再看下mdl相关信息:-- 如果没有开启mdl, 可以使用如下sql开启-- update performance_schema.setup_instruments...metadata/sql/mdl';-- 查询mdl锁select * from performance_schema.metadata_locks;都是SHARED_READ啊初步分析首先我们来看下什么情况会产生Waiting...就是我们使用mysqldump备份时会执行的, 而且也会因为存在大事务, 导致其状态变为Waiting for table flush, 于是我们查看下备份时间点, 恰好能对得上....那为啥还是会出现大量的Waiting for table flush, 而且即使是新连接进来查询该表也会出现这个状态.

    52320

    【MySQL经典案例分析】 Waiting for table metadata lock

    h309.jpg (3)最后上到服务器上查看下SQL的执行情况 ①查看show full processlist; doc_image_2_w1889_h676.jpg       大量的请求都是在“Waiting...for table metadata lock”,可以分成三类请求: Select请求 Rename请求 Sleep请求 ②分析Waiting for table metadata lock...       一般来说常见的“Waiting for table metadata lock”会出现在DDL操作或者是有未提交的事务上,从information_schema.processlist表中...支持事务的InnoDB引擎表和不支持事务的MyISAM引擎表,都会出现Metadata Lock Wait等待现象。...一旦出现Metadata Lock Wait等待现象,后续所有对该表的访问都会阻塞在该等待上,导致连接堆积,业务受影响。

    4.5K60

    Mysql连接错误:Lost connection to Mysql server at waiting for initial communication packet

    在远程连接mysql的时候,连接不上,出现如下报错: Lost connection to MySQL server at 'waiting for initial communication packet...原因分析: mysql开启了DNS的反向解析功能,这样mysql对连接的客户端会进行DNS主机名查找。...mysql的DNS反向解析: 1)mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。...2)在my.cnf配置文件中的[mysqld]区域添加skip-name-resolve,即跳过mysql连接的DNS反向解析功能,这样能很好地提高mysql性能。...在这种情况下,就只能使用MySQL授权表中的IP来连接mysql服务了。 对于第一种方法显然比较笨,也不实用!

    10.7K80

    mysql shutdown的时候一直 waiting for page_cleaner to finish flushing of buffe

    导读某个环境的mysql做shutdown的时候,一直刷日志waiting for page_cleaner to finish flushing of buffer pool刷了几个小时了, 虽然cpu...因为执行了shutdown命令, 所以也没办法登录数据库查看了.注: 环境不方便截图和拍照,故使用文字描述, 文中出现的截图均为本地模拟的, 方便展示处理过程这种案例网上还是很多的, 有说是时区问题的,...日志还是刷一样的日志, 但日志的时区未发生变化(还是-4:00)# 于是又将时间往后推了2小时date -s "`date --date '+2 hours' '+%Y%m%d %H:%M:%S'`"# 还是一直刷waiting...Mysqld进程, 查看mysql.error实际环境的Doing recovery是非常多的, 后面应用日志还有进度.看来是成功恢复了呢....出现问题的时候, 又没得那么多时间去分析, 只能先处理问题. 所以平时打好基础是非常重要的.如果实在不行, 还可以根据之前解析的ibd,redo,undo,binlog来自己做恢复

    40520

    架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃

    励志做架构师的撸码人,认知很重要,可以订阅:架构设计专栏 我们码农平时大多数时间都在撸码或者撸码的路上,很少关注mysql的一些底层原理,当出现问题时没能力第一时间解决问题,出现问题后不去层层剖析问题产生的原因...,导致线上服务出现灾难性的后果: 1、系统核心服务无法访问。...二、MySQL出现Waiting for table metadata lock的原因 1、MDL锁(metadata lock)的原因         mysql为了在并发环境下维护表元数据的数据一致性...一旦出现Metadata Lock Wait等待现象,后续对该表的所有访问操作(包括读)都被会阻塞在,因为他们也会在Opening tables的阶段进入到Waiting for table metadata...虽然MySQL 5.6推出了online ddl特性,解决执行ddl锁表的问题,但是也会存在Waiting for table metadata lock的情况,具体先看看MySQL Online DDL

    1.2K10
    领券