mysql集群同步慢_搭建MySQL主从集群,主从复制过程中同步延迟问题

● show slave status显示参数Seconds_Behind_Master不为0,这个数值可能会很大

● show slave status显示参数Relay_Master_Log_File和Master_Log_File显示bin-log的编号相差很大,说明bin-log在从库上没有及时同步,所以近期执行的bin-log和当前IO线程所读的bin-log相差很大

● mysql从库数据目录下存在大量mysql-relay-log日志,该日志同步完成之后就会被系统自动删除,存在大量日志,说明主从同步延迟很厉害。

2)、DDL的IO问题

DML和DDL的IO操作是随机的,不是顺序的,成本高很多,还可能slave上的其他查询产生lock争用,由于Slave_SQL_Running也是单线程的,所以一个DDL卡主了,需要执行10分钟,那么所有之后的DDL会等待这个DDL执行完才会继续执行,这就导致了延迟,比如:"主库上那个相同的DDL也需要执行5分钟,为什么slave会延时?",答案是master可以并发,Slave_SQL_Running线程却不可以。

四、主从同步的延迟的解决方案(重点):

1)、架构方面

1.业务的持久化层的实现采用分库架构,mysql服务可平行扩展,分散压力。

2.单个库读写分离,一主多从,主写从读,分散压力。这样从库压力比主库高,保护主库。

3.服务的基础架构在业务和mysql之间加入memcache或者redis的cache层。降低mysql的读压力。

4.不同业务的mysql物理上放在不同机器,分散压力。

2)、硬件方面

1.采用好服务器,比如4u比2u性能明显好,2u比1u性能明显好。2.存储用ssd或者盘阵或者san,提升随机写的性能。

3.主从间保证处在同一个交换机下面,并且是万兆环境。

总结,硬件强劲,延迟自然会变小。一句话,缩小延迟的解决方案就是花钱和花时间。

3)、mysql主从同步加速

1、sync_binlog在slave端设置为0

2、logs-slave-updates 从服务器从主服务器接收到的更新不记入它的二进制日志。

3、直接禁用slave端的binlog

4、slave端,如果使用的存储引擎是innodb,设置innodb_flush_log_at_trx_commit =2

4)、磁盘IO上操作

从文件系统本身属性角度优化master端修改linux、Unix文件系统中文件的etime属性, 由于每当读文件时OS都会将读取操作发生的时间回写到磁盘上,对于读操作频繁的数据库文件来说这是没必要的,只会增加磁盘系统的负担影响I/O性能。

五、主从同步的延迟的解决数据一致性方案:

1)、主从复制存在的问题:

●主库宕机后,数据可能丢失

●从库只有一个sql Thread,主库写压力大,复制很可能延时

2)、解决方法:

● 半同步复制---解决数据丢失的问题

● 并行复制----解决从库复制延迟的问题

3)、半同步复制mysql semi-sync(半同步复制)半同步复制

● 确保事务提交后binlog至少传输到一个从库

● 不保证从库应用完这个事务的binlog

● 性能有一定的降低,响应时间会更长

● 网络异常或从库宕机,卡主主库,直到超时或从库恢复

4)、主从复制--异步复制原理、半同步复制和并行复制原理比较

a、异步复制原理

0ca243048ec43aa755800272c6305d4a.png

(图片来源于网络)

b、半同步复制原理

a46eb204e4b6b7c8c1c53d1b8241bff0.png

(图片来源于网络)

事务在主库写完binlog后需要从库返回一个已接受,才放回给客户端;确保事务提交后binlog至少传输到一个从库不保证从库应用完成这个事务的binlog性能有一定的降低网络异常或从库宕机,卡主库,直到超时或从库恢复、mysql并行复制 。

总  结

以上写了那么多内容,主要查找主服务器和从服务器之间的问题,因为数据同步的过程就是服务器之间的数据传输,所以,我们需要把观察问题所在,才好更好的解决问题,把数据延迟问题解决掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值