mysql 延时语句_MySQL主从延时问题小计&个人总结

最近碰到几次MySQL主从延时的问题,也有同行在抱怨这个,稍微整理一下

------------------------------------正文------------------------------------

出现问题的两个场景:

场景1.主库进行alter操作,花费大约10min,从库复现这个alter的时候,也花费了约10min的时间,期间延时不断在增加;

场景2.主库上对一张MyISAM的表有大量的增删改操作,从库的业务语句在操作这张表经常会遇到表锁,导致从库延时;

场景问题分析:

场景1:其实这个场景很简单,这种需要花费很多时间的alter语句,在主库花费这么久,在从库复现必然也是要花费很多时间的,自然会阻塞之后的同步;

场景2:

首先要确认MyISAM的特性,MyISAM的表是表级别的锁,读写互斥,

当同步的SQL线程在增删改数据的时候,如果有select语句在操作这个表,是会产生表级锁,阻塞同步的SQL线程,简单模拟以下表级锁阻塞从库SQL线程的情况

1bf52029896f3edb724ea265ef814e1f.png

MyISAM的表遇到这种情况其实和情景1是一种类型的,那就是主库上的操作在从库复现的时候很慢/被阻塞,出现问题的地方都是复现的SQL本身,这种类型的问题,基本只能把这些“问题SQL”放在空闲时段去操作,属于DBA的操作规范一类了,如果是正常时间段出现了这种情况,可以考虑单独分离某一台延时的从库,屏蔽业务请求,等延时消除以后,再添加回去,再替换另外有延时的从库,依次去追主库了;

主从延时还存在一种类型,就是从库的同步卡在写binlog这一部分,典型的表现就是从库的系统IO等待很高,这种情况,视业务类型去修改事务组和日志刷新策略的值,或者更换存储,提高硬件能力~

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从延迟问题是数据库运维中经常遇到的问题之一,通常会引起应用程序性能下降或者数据不一致的问题。下面我们来介绍一下如何排查MySQL主从延迟问题。 1. 确认主从复制的状态 首先需要确认主从复制的状态。可以通过以下命令查看: ``` SHOW SLAVE STATUS \G; ``` 在输出结果中,需要关注以下几个参数: - Slave_IO_Running:表示Slave I/O线程是否正在运行,如果为YES,则正常运行,否则需要检查错误日志; - Slave_SQL_Running:表示Slave SQL线程是否正在运行,如果为YES,则正常运行,否则需要检查错误日志; - Seconds_Behind_Master:表示从库落后主库的时间,如果为0,则表示主从同步正常。 2. 确认网络延迟 如果主从复制状态正常,但是Seconds_Behind_Master不为0,那么需要确认网络延迟是否存在。可以通过在主库和从库上分别执行以下命令进行测试: 在主库执行: ``` SELECT NOW(); ``` 在从库执行: ``` SELECT NOW(); ``` 比较两个输出结果的时间差,即可得到主从复制的网络延迟时间。如果网络延迟较大,可以考虑优化网络连接或者将主从库部署在同一地域内。 3. 检查主从库配置 如果网络延迟不存在,那么需要检查主从库的配置是否正确。可以比较主从库的以下参数是否一致: - server_id:表示服务器的ID,主从库必须不同; - log_bin:表示二进制日志文件名称,主库必须开启二进制日志; - binlog_format:表示二进制日志格式,主库必须开启ROW格式; - replicate_do_db:表示从库需要复制的数据库,如果设置了该参数,则只复制该数据库; - replicate_ignore_db:表示从库忽略复制的数据库,如果设置了该参数,则不复制该数据库。 4. 检查主从库版本 如果主从库配置正确,但是主从延迟问题依然存在,那么需要检查主从库的版本是否一致。主从库的版本必须一致,否则会出现主从延迟的问题。 5. 总结 通过以上步骤,可以排查MySQL主从延迟问题。在实际运维过程中,还可以通过监控工具对主从库的状态进行实时监控,及时发现主从延迟问题,并进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值