上篇文章介绍了MMM架构的实现方法,但是上篇文章的MMM方案的复制是异步复制,异步复制的主要问题在于当主从存在延时时如果主机出现了故障导致了主从切换时这时将会存在数据丢失;mysql为了解决异步复制数据丢失的问题增加了半同步复制,半同步复制存在5.5以上的版本,半同步复制的原理是客户端在事务提交时必须等待从库接收到binlog的回应之后才能提交事务(当存在多个从库时默认只需要一个从库接受到了bInlog即可,也可以配置必须每一个从库都必须接收到binlog但是这样对性能影响就会很大),如果从库宕机或者故障导致binlog没有及时传送到从库(由参数rpl_semi_sync_master_timeout控制,默认是10S),这时mysql会自动转为异步复制,当从库又重新启动有新的一条binglog从主库发送到从库在规定的时间内得到响应mysql又会自动转换为半同步复制,所以半同步复制对主从之间的网络要求比较高。

mysql版本:5.6

方案:MMM+半同步复制

 

一、原理

 5.6的半同步复制是在客户端执行commit主库写入完binlog然后执行数据刷新到磁盘后才由dump线程将binlog记录发送到从库的io线程。

二、安装配置

首先说明一下,当前的配置是基于MMM方案的配置,由于MMM方案是两主一从,所以我在其中的双主上面配置半同步复制,从库上面还是原先的异步复制。半同步复制是基于插件来实现的,主从上面各自执行不同的插件。

1.查询是否支持动态插件

主从上面都需要查看是否支持动态插件

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式