情况描述:
读写分离环境,Mysql 主库正常。
备库存在大查询持续了7个小时之久。
夜间10点备份启动出现waiting for table flush 等待事件。
备份后面进来的会话出现积压且前台应用被阻塞。
处理过程:
收到报警后检查主从延迟情况,show slave status\G;有延迟。
select * from information_schema.processlist order by time desc; 检查当前session 的执行情况。看到有4个session 执行了28000s 未执行完成, 有会话处于waiting for table flush 状态。此4个会话从堡垒机终端过来确定不是应用中的session。
将此4个session kill 掉, show processlist 查看会话状态, 恢复正常, 主从延迟追平。
故障处理过后回想什么原因导致会话积压,前台应用被阻塞。
大查询未结束。
mysqldump 在备份时会进行flush table 操作出现等待。
flush table 操作无法完成后面的session 被阻塞。
测试环境复现场景中发现的现象: 1. 使用mysqldump 在备库进行备份,备份sql中不加--single-transaction 时,主库中对表进行update 操作从库的sql_thread 线程会被mdl 锁阻塞,出现主从延迟。 需要掌握的知识点:mysqldump 备份的整个过程: https://www.cnblogs.com/digdeep/p/12455757.html MDL 锁: https://www.cnblogs.com/zengkefu/p/5690385.html
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
