MySQL主从推迟解决方案51CTO博客 - 千亿集团

MySQL主从推迟解决方案51CTO博客

2019年03月05日10时59分32秒 | 作者: 旭炎 | 标签: 主从,推迟,主库 | 浏览: 2133

最近一段时间内,不管在博客谈论仍是私信里,技能老铁们都对老张写的博客表明认可和支撑,我很欣喜!从业多年就期望有一天能把自己学过的东西,遇到的问题,共享出来!咱们咱们一同前进!


今儿计划给咱们共享的是怎样处理MySQL主从推迟的问题,这个也是一些同学在出产中面临的比较扎手的问题,  常常给我打电话或许微信,说张老师,现在监控主从之间的推迟特别大。怎样办啊?!有什么方法能够防止推迟嘛?!

     

面临抛出这样的问题,咱们先来了解下出产中有哪些主从架构?线上出产环境一般有一主一从,一主多从,多主一丛(级联仿制,MySQL5.7之后才有) ,主主仿制。主从架构存在意图就是为了毛病切换和读写别离。它的原理如下图:



主服务器有一个作业线程 io dump thread

从服务器有两个作业线程,一个是io thread,一个sql thread。


主库把外界接纳的SQL恳求,记录到自己的binlog日志里边,从库的

io thread去恳求主库 的binlog日志,并将得到的binlog日志写到自己的relay log(中继日志) 文件中;主库经过io dump thread,给从库 io thread 传binlog 日志。


咱们能够看到在主库上事务的提交是并发形式的,而从库只要一个sql thread 作业,这种不公平的待遇,你说它能不推迟嘛。


分析其重要的推迟原因在于:

1. 首要就是主库能够并发写入,从库只能经过单sql thread完结任务(MySQL5.7之前)

2. MySQL主从之间的同步,原本就不是不时同步的,是异步的同步,也就是说,主库提交事务之后,从库才再来履行一遍。

3. 在主库上对没有索引大表的列进行delete或许update的操作

4. 从库的硬件装备没有主库的好,常常疏忽从库的重要性

5. 网络问题


处理方法如下:

1. 运用MySQL5.7版别,在5.7中引入了根据组提交的并行仿制,设置参数slave_parallel_workers>0  和slave_parallel_type=LOGICAL_CLOCK。

MySQL 5.7才可称为真实的并行仿制,这其间最为首要的原因就是slave服务器的回放与主机是共同的。就是说主服务器上是怎样并行履行的,从库上就怎样进行并行回放。不再有MySQL5.6版别中库的并行仿制约束。

2. 能够选用percona公司的percona-xtradb-cluster简称PXC架构,这种架构下能够完结多节点写入,到达不时同步。可参阅老张的MySQL高可用架构三部曲之PXC。

链接地址: 事务初期规划的时分,就要挑选适宜的分库、分表战略,防止单表,或许单库过大。带来额定的仿制压力。然后带来主从推迟的问题。

4. 防止一些无用的IO耗费,能够上高转速的磁盘,SSD或许PCIE-SSD设备。

5. 阵列等级要挑选RAID10,raid cache战略要运用WB坚决不要WT。

6. IO调度要挑选deadline形式。

7. 恰当调整buffer pool的巨细

8. 防止让数据库进行各种很多运算,要记住数据库仅仅用来存储数据的,让使用端多分管些压力,或许能够经过缓存来完结。


现在能想到就这些,还望咱们一同丰厚处理方法。立刻就要从夏日进入秋季了,在这个收成的时节,期望各位老铁,每天都能收成归于自己的那份技能带给你的高兴!


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章