mydumper原理2
使用mydumper备份发生Waiting for table flush,导致所有线程都无法读和写
版本 mydumper 0.9.1
OS centos6.6 X86_64
mysql 5.6.25-log
mydumper备份选项 mydumper -h $HOST -u $USER -p $PASSWORD -P $PORT -G -E -R -c -x '^(mysql|db1|db2)'
mysql是MyISAM存储引擎
描述:
凌晨03:00执行脚本备份,几分钟后应用报错无法连接数据库,查看show processlist基本上大量的Waiting for table flush(大部分是select)和少量的Waiting for global read lock,重点筛选了执行备份的用户backup;
56793 backup 127.0.0.1:39481 NULL Query 3671 Waiting for table flush FLUSH TABLES WITH READ LOCK
Time 3671,很明显是被某大查询阻塞了,使用cat list.txt |awk '{if($6>3671) print $0}'筛选大于3671的线程,果然有一条记录
46109 app1 *.*.*.*:25545 db_name Query 13626 Sending data /* dynamic native SQL query */ SELECT ...
执行了13626/3600=3.7多个小时;从进程的id也可以看出,备份线程的id是56793,而该查询的id是46109的确是早于备份线程的id;并且状态是sending data,也就是说FTWRL被该句查询阻塞了。
疑问:既然大查询早于备份线程,为什么在执行备份时(加FTWRL前)show processlist,没有退出备份?默认是大于60s会终止备份
mydumper原理2的更多相关文章
- mydumper原理5
前言 之前介绍了Oracle官方的多线程逻辑导入导出工具mysqlpump,但已经操作过的同学会发现其多线程的单位还是表,换句话说, 单表依然是 单线程导出 .网易早已使用mydumper/myloa ...
- mydumper原理4
Mydumper是一个针对mysql和Drizzle的高性能多线程备份和恢复工具.开发人员分别来自MySQL,Facebook,SkySQL公司.目前已经在有一些大型产品业务上测试并使用了Mydump ...
- MySQL 逻辑备份mysqldump&mysqlpump&mydumper原理解析
目录 准备 mysqldump备份 mysqlpump备份 mydumper备份 想弄清除逻辑备份的原理,最好的办法是开启general_log,一探究竟 准备 创建用户 CREATE USER IF ...
- mydumper原理3
Mydumper介绍 Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具.开发人员主要来自MySQL,Facebook,SkySQL公司.目前已经在一些线上使用了Mydu ...
- mydumper原理1
http://www.cnblogs.com/linuxnote/p/3817698.html?utm_source=tuicool&utm_medium=referral mydumper介 ...
- mydumper原理介绍
mydumper的安装:http://www.cnblogs.com/lizhi221/p/7010174.html mydumper介绍 MySQL自身的mysqldump工具支持单线程 ...
- mysql备份工具 :mysqldump mydumper Xtrabackup 原理
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
- mysqldump+mydumper+xtrabackup备份原理流程
mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) ...
- MySQL备份原理详解
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
随机推荐
- HDU 5679 Substring 后缀数组判重
题意:求母串中有多少不同的包含x字符的子串 分析:(首先奉上FZU官方题解) 上面那个题就是SPOJ694 ,其实这两个题一样,原理每次从小到大扫后缀sa数组,加上新的当前后缀的若干前缀,再减去重复的 ...
- Face++接口封装
本节使用doCurlGetRequest函数来封装Face++的接口请求.我们在class文件夹下的faceStub.php文件中实现 一个faceStub类,封装请求Face++的相关接口. 实现代 ...
- IOS-day01_OC中类的创建以及使用
OC中定义类 // 设计一个车类 @implementation Car : NSObject // 这个大括号里面写所有的属性 { @public int wheels ;//轮子个数 double ...
- MorningSale 使用帮助
待添加 http://121.37.42.173:8080/morningsale
- Linux学习笔记:CentOS安装MySQL
[1]安装版本: 1.1 CentOS-7-x86_64-Everything-1503-01 1.2 MySQL-5.6.27-1.linux_glibc2.5.x86_64.rpm-bund ...
- [Hive-Tutorial] What Is Hive
What Is Hive Hive is a data warehousing infrastructure based on Hadoop. Hadoop provides massive scal ...
- java中的==和equals的区别
关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...
- ESXi 与其它虚拟化底层产品之比较:
序号 虚拟化管理程序属性 VMware ESXi 5.0 采用 Hyper-V 的 Windows Server 2008 R2 SP1 Citrix XenServer 5.6 FP1 1 磁盘占 ...
- 从使用到原理学习Java线程池
线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源.在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收. 所 ...
- JDBC学习笔记(2)——Statement和ResultSet
Statement执行更新操作 Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.Statement ...