`
Ilovejava1
  • 浏览: 17398 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟

阅读更多

 本来MySQL BINLOG和SHOW PROCESSLIST命令属于八竿子打不着的两个事务,但在最近故障排查中,发现主库和从库已经存在很严重的复制延迟,但从库上显示slave_behind_master值为0,复制SQL线程与备份线程之间相互阻塞,但未报死锁。 

在从库上执行SHOW PROCESSLIST发现复制的SQL线程等待锁,而等待SQL的WHERE条件竟然是类似于WHERE C1="ABC" AND C2>"2018-03-01" AND C2<"2018-03-26" 这种个范围查询,第一时间想到就是怎么是个基于STATEMENT的复制,不科学啊,我们生产环境统一使用基于ROW格式的复制,难道研发私自修改回话级别的复制格式? 
使用MySQL Binlog导出日志一看: 
 
发现真错怪研发同事啦,rbr_only=yes说明基于ROW格式进行复制,“SET TRANSACTION ISOLATION LEVEL READ COMMITTED”也是基于行格式复制的典型特征之一,last_committed和sequence_number用于MySQL 5.7版本中的并发复制,row_query后跟的是在主库上执行的原始SQL,也就是我们在从库SHOW PROCESSLIST中看到的SQL,但实际上从库执行的还是BINLOG部分,该BINLOG可以直接可以直接直接在从库上执行,也可以解析成一行行的数据DML操作,BINLOG部分如下: 
 
  
========================================================================================================== 
另外一个很有意思的问题,如果在从库上运行mysqldump进行备份,且从库上使用并行复制,会导致备份和复制相互阻塞: 
 
在上面的阻塞中,多个SQL线程与备份线程相互之间阻塞,且MySQL无法有效检测出死锁环路而触发死锁的回滚机制,导致复制线程和备份作业相互hang住,需要DBA进行干预(取消备份或停止复制),在复制SQL线程被hang住期间,复制的IO线程仍可以正常工作接受到主库的Binlog信息,但slave_behind_master并不会随之增大,如果仅通过监控slave_behind_master值来判断主从复制延迟,则会导致延迟监控存在严重漏洞,因此在监控复制延迟时,除监控slave_behind_master值外,还需要监控主库binlog位置点和从库执行的binlog位置点。 
========================================================================================================== 
打完收工,妹子镇贴: 
 

分享到:
评论

相关推荐

    mysqldump.exe 5.7工具

    6. 多线程备份:在MySQL 5.7及以上版本,`mysqldump`支持并行线程导出,通过`--parallel`选项可以指定并发度,加快大型数据库的备份速度。 7. 密码处理:为了安全,避免在命令行中直接输入密码,可以使用`--...

    mysql5.7最优配置文件模板.docx

    本文档主要介绍了 MySQL 5.7 的主从配置和备份,旨在帮助读者快速搭建高可用性的 MySQL 集群环境。文章首先介绍了 MySQL 5.7 的新特性和性能提升,然后详细讲解了主从配置的实现步骤,包括创建用于主从同步的数据库...

    mysql5.7windows版

    8. **复制改进**:MySQL 5.7的复制功能得到了加强,支持GTID(全局事务标识符)复制,使得主从复制更加可靠和易于管理。 9. **监控与诊断**:MySQL 5.7提供了更强大的监控和诊断工具,例如Performance Schema,可以...

    Mysql5.7官方文档

    8. **复制与高可用性**:MySQL 5.7的复制功能支持主从复制和多源复制,增强了系统的高可用性和灾难恢复能力。文档详细介绍了复制的配置、监控和故障处理。 9. **安全性**:MySQL 5.7提升了安全性,包括加强的身份...

    银河麒麟_飞腾_MYSQL 离线安装包 mysql5.7_kylin_arm64.zip

    在使用过程中,用户可能会遇到如性能调优、数据备份恢复、权限管理等问题,这些问题可以通过熟悉MySQL的配置文件(如my.cnf)和管理工具(如mysqldump)来解决。对于银河麒麟和飞腾平台,由于可能存在一些特定的兼容...

    mysql5.7.32最新稳定版本

    MySQL 5.7.32 是 MySQL 数据库管理系统的一个重要稳定版本,对于系统安全性和性能都有显著提升。在本文中,我们将深入探讨 MySQL 5.7.32 的主要特点、在 Linux 上的安装过程以及如何确保数据库的安全性。 1. **...

    ubuntu能用的mysql5.7.38,并附带安装手册

    另外,了解如何备份和恢复MySQL数据库也非常重要,可以使用`mysqldump`工具进行备份,恢复时则使用`mysql`客户端。 总的来说,Ubuntu上的MySQL 5.7.38安装过程虽然不复杂,但理解其背后的配置和管理知识对于任何...

    mysql 5.7从入门到精通

    12. **复制与集群**:MySQL 5.7支持主从复制,可用于数据备份和负载均衡。了解如何配置复制,以及设置主主复制和多源复制。 13. **InnoDB存储引擎**:MySQL的InnoDB引擎支持事务处理和行级锁定,是许多应用场景下的...

    MySQL5.7从入门到精通 带书签 高清

    这份“MySQL5.7从入门到精通”的资源旨在为初学者和有经验的开发者提供一个全面的学习指南,通过高清带书签的PDF文档,使得学习过程更加高效和便捷。 一、MySQL基础 MySQL的基础部分通常包括数据库的概念、安装与...

    mysql 5.7 CentOS 7 离线安装包

    MySQL 5.7是MySQL数据库管理系统的一个重要版本,它在MySQL 5.6的基础上增加了一些新的特性和性能改进。在CentOS 7操作系统上进行离线安装MySQL 5.7,通常是为了避免在线安装时网络问题导致的不便,或者是在没有...

    MySQL 5.7 英文官方文档 Reference Manual

    MySQL 5.7提供了改进的备份工具,如Percona Xtrabackup和mysqldump,可以进行在线热备份,减少备份期间对业务的影响。同时,恢复过程也更加灵活和高效。 九、其他特性 MySQL 5.7还包括对Full-Text Search的优化、...

    linux-mysql5.7-64

    MySQL 5.7支持多种方式导入和导出数据,如`mysqldump`用于备份和恢复,`LOAD DATA INFILE`和`SELECT INTO OUTFILE`用于快速导入导出数据。 7. **性能优化**: MySQL 5.7引入了InnoDB存储引擎的性能改进,包括更快...

    MySQL 5.7 Reference Manual html

    MySQL 5.7参考手册是数据库管理员、开发者和IT专业人士不可或缺的资源,它详细阐述了MySQL 5.7版本的功能、语法和最佳实践。MySQL是一个流行的开源关系型数据库管理系统(RDBMS),以其高效、可扩展性和易于使用而受...

    MySQL5.7从入门到精通》

    2. **安装与配置**:详细步骤介绍如何在Windows、Linux和Mac OS等操作系统上安装MySQL5.7,以及配置服务器的启动、停止和优化。 3. **SQL基础**:学习SQL语言,包括数据类型、创建、修改和删除数据库与表的语句...

    MySql5.7类.rar

    9. **复制功能**: MySQL 5.7增强了复制功能,支持半同步复制和GTID(全局事务标识符)复制,提高了数据的一致性和灾难恢复能力。 10. **性能监控**: 通过Performance Schema,管理员可以监控数据库的性能,找出瓶颈...

    mysql5.7_win

    - InnoDB存储引擎增强:MySQL 5.7对InnoDB进行了优化,提升了事务处理速度和并发性能,支持更大的表空间。 - JSON支持:新增了对JSON数据类型的内置支持,便于存储和查询非结构化数据。 - 查询优化器改进:包括新...

    MySQL5.7极简安装版

    6. **复制功能**:MySQL 5.7提供了半同步复制和多源复制,提高了数据复制的可靠性和灵活性。 7. **优化器改进**:包括查询优化器的改进,如COST基线的改进,使得MySQL能够更准确地预测查询执行计划的成本,从而选择...

    mysql-5.7.31-winx64.zip

    10. **优化的备份和恢复**:MySQL 5.7.31改进了备份工具,如使用mysqldump进行在线备份,减少了对系统资源的影响。 在使用mysql-5.7.31-winx64.zip解压后的文件中,您会找到安装程序和其他必要的二进制文件,如`bin...

    最新mysql5.7安装包(Windows系统)

    12. **备份与恢复**:MySQL 5.7改进了备份工具,如`mysqldump`,能更高效地进行全量和增量备份,同时恢复操作也更加快速和可靠。 总的来说,MySQL 5.7在功能、性能和安全性方面都有显著提升,适合各种规模的企业和...

Global site tag (gtag.js) - Google Analytics