网站地图    收藏   

主页 > 后端 > mysql数据库 >

MySQL主从复制延迟原因以及解决方案

来源:自学PHP网    时间:2020-09-24 09:58 作者:小飞侠 阅读:

[导读] MySQL主从复制延迟原因以及解决方案...

今天带来MySQL主从复制延迟原因以及解决方案教程详解

来源:公众号「神谕的暗影长廊」

在异步或半同步的复制结构中,从库出现延迟是一件十分正常的事。
虽出现延迟正常,但是否需要关注,则一般是由业务来评估。
如:从库上有需要较高一致性的读业务,并且要求延迟小于某个值,那么则需要关注。

简单概述一下复制逻辑:

1、主库将对数据库实例的变更记录到binlog中。
2、主库会有binlog dump线程实时监测binlog的变更并将这些新的events推给从库(Master has sent all binlog to slave; waiting for more updates
3、从库的IO Thread接收这些events,并将其记录入relaylog。
4、从库的SQL Thread读取relaylog的events,并将这些events应用(或称为重放)到从库实例。

上述为默认的异步复制逻辑,半同步复制又有些许不同,此处不再赘述。

此外,判断从库有延迟是十分简单的一件事:
在从库上通过SHOW SLAVE STATUS
检查Seconds_Behind_Master值即可。

产生延迟的原因及处理思路

主库DML请求频繁(tps较大)

即主库写请求较多,有大量insert、delete、update并发操作,短时间产生了大量的binlog。

【原因分析】

主库并发写入数据,而从库SQL Thread为单线程应用日志,很容易造成relaylog堆积,产生延迟。

【解决思路】

做sharding,通过scale out打散写请求。或考虑升级到MySQL 5.7+,开启基于逻辑时钟的并行复制。

主库执行大事务

MySQL8安装Installer版的图文教程
下一篇:Mysql如何在linux中实现定时备份

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论