本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • MySQL主从复制(2)半同步复制的配置方式

MySQL主从复制(2)半同步复制的配置方式

发布:TangLu2018-11-23 18:22分类: MySQL 标签: mysql

从MySQL5.5开始,MySQL以插件的形式支持半同步复制,看看与异步复制的区别是什么

异步复制(Asynchronous replication)
MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

半同步复制(Semisynchronous replication)
主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。对于一主多从的MySQL架构建议使用半同步复制

MySQL半同步复制配置方法:

1、安装半同步复制插件

主节点:

mysql > INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

从节点(只选择一台从节点做配置):

mysql > INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

2、检查插件是否安装成功

SHOW PLUGINS;

3、启动主从节点的半同步复制功能

SET GLOBAL rpl_semi_sync_master_enabled=1; #主节点做该操作
SET GLOBAL rpl_semi_sync_slave_enabled=1; #从节点做该操作

上面的操作是临时生效,可以写my.cnf配置文件中永久有效


#主节点
plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1
#从节点
plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1


4、重新启动从节点复制线程。如果没有重启,则默认还是异步复制。重启后Slave会在Master上注册为半同步复制的Slave角色。

START SLAVE;

5、当半同步复制发生超时时(由rpl_semi_sync_master_timeout参数控制,单位是毫秒,默认为10000,即10秒),会暂时关闭半同步复制转而使用异步。当master dump线程发送完一个事务的所有事件之后,如果在rpl_semi_sync_master_timeout内,收到了从库的响应,则主从又重新恢复为半同步复制。示例:如果从节点Down掉,那么在主节点插入一条语句,这个时候会等待10秒才会插入成功,与rpl_semi_sync_master_timeout参数的时间相吻合。等从节点恢复后,主节点再次插入数据,又会恢复正常。

6、查看半同步复制插件所生成的环境变量与状态变量,状态变量一般用于统计数据。


show global variables like '%semi%';  #半同步复制相关的环境变量
show status like '%semi%';  #半同步复制相关的状态变量


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《MySQL主从复制(2)半同步复制的配置方式
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-377.html  [生成短网址]

已有 0/1035 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~