flush tables 好危险啊

请看图

+----+------+-----------+------+------------+------+-------------------------+----------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+------------+------+-------------------------+----------------------------------------+
| 1 | root | localhost | test | Query | 78 | User sleep | select sleep(500) , id from my_test1_0 |
| 9 | root | localhost | NULL | Query | 71 | Waiting for table flush | flush tables |
| 10 | root | localhost | test | Field List | 24 | Waiting for table flush | |
| 11 | root | localhost | NULL | Query | 0 | init | show processlist |
+----+------+-----------+------+------------+------+-------------------------+----------------------------------------+

如果有个运行时间很长的语句,阻塞了flush tables运行,那么后续的所有语句都会被这个flush tables 所阻塞。

时间: 2024-10-11 14:40:23

flush tables 好危险啊的相关文章

Innodb加载数据字典 && flush tables

测试了两个case,属于之前blog的遗留问题: innodb如何加载数据字典 flush tables都做了什么操作 先来看下innodb加载数据字典: 首次使用:select * from tt; 1. 创建handler对象 函数调用栈: open_binary_frm get_new_handler innobase_create_handler ha_innobase::ha_innobase 根据单实例 handlerton + table_share两个参数,创建了handler对

FLUSH TABLES WITH READ LOCK

会话1: mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.18 sec) mysql> show processlist; +----+------+-----------------+------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-

FLUSH TABLES WITH READ LOCK 和 LOCK TABLES 之种种

1.FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读.一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行. 解锁的语句也是unlock tables. 2.LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} 这个命令是表级别的锁定,可以定制锁定某一个表.例如: lock  tables test read; 不影响其他

mysql出现大量FLUSH TABLES WITH READ LOCK

解决办法 故障总结 系统中的global read lock被其它线程获取了(被加上了S锁),因此DML在grl上面加IX锁时会出现Waiting for global read lock,而set read_only在grl上加的是S锁,因此此时是可以grant的,而此时系统中存在大查询,set global read_only=1需要等待表被关闭,因此状态是:Waiting for table flush 因此原因可以确定了:系统中存在flush tables with read lock但

flush table with read lock的轻量级解决方案[原创]

为什么要使用FTWRL ? MySQL dba在日常工作中,数据备份绝对是工作频度最高的工作内容之一.当你使用逻辑方式进行备份(mydumper,mysqldump)或物理方式进行备份(percona-xtrabackup),为了保证数据的一致性,这两种备份方式都会在备份过程中执行 flush table with read lock 这个命令(**以下简称为FTWRL**),通过执行FTWRL,来对事务和非事务表来加table level级别的共享锁,取得此时的gtid或者binlog偏移量,

MySQL线程处于Waiting for table flush的分析

  最近遇到一个案例,很多查询被阻塞没有返回结果,使用show processlist查看,发现不少MySQL线程处于Waiting for table flush状态,查询语句一直被阻塞,只能通过Kill进程来解决.那么我们先来看看Waiting for table flush的官方解释:https://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html Waiting for table flush   The thread

MySQL Flush导致的等待问题

--MySQL Flush导致的等待问题 -------------------------------2014/07/13 前言 在实际生产环境中有时会发现大量的sql语句处于waiting for table.. 状态中,有时候看起来会让人觉得困惑,本文将讲解此状态产生的原因及解决办法. 正文 本文中用到了lock table来模拟实际情况, 首先介绍一个lock tables需要注意的事项,如果在一个session中使用了lock tables,那么在此session中将只能访问获取到lo

FLUSH TABLE WITH READ LOCK详解

FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配).由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住.如果是主库,则业务无法正常访问:如果是备库,则会导致SQL线程卡住,主备延迟.本文将详细介绍FTWRL到底做了什么操作,每个操作的对库的影响,以及操作背后的原因. FTWRL做了什么操作? FTWRL主要包括3个步骤: 1.上全

mysql flush详解

http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758021.html cnblogs - FLUSH TABLES WITH READ LOCK有多快 cnblogs - MySQL的FLUSH用法