mysql5.5半同步复制机制

mysql5.5版本开始系统提供半同步复制机制,就是用来保障主从之间数据同步的及时性。在半同步机制下,master节点只要确认有至少一个slave节点接收到了事务,即向发起请求的客户端返回操做成功的信息。mysql

查看当前系统安装的全部插件:sql

mysql>show plugins;异步

查看mysql插件目录:插件

mysql>show variables like 'plugin_dir';线程

半同步插件共有两个,分别对应主从节点,semisync_master.so和semisync_slave.so,事务

在master节点执行命令,加载semisynchronous插件:同步

master> install plugin rpl_semi_sync_master soname 'semisync_master.so';ast

在slave节点也加载:配置

slave> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';plugin

经过show plugins检查插件是否处于可用状态,而后启用改功能:

在master节点设置:

master> set global rpl_semi_sync_master_enabled = 1;

master> set global rpl_semi_sync_master_timeout = 3000;

rpl_semi_sync_master_enabled:用来控制是否在master节点启用半同步复制,1即启用状态;

rpl_semi_sync_master_timeout:用来指定master节点等待slave响应的时间,单位是毫秒,默认为10000即10秒,这里设置为3秒。若是超过指定时间slave节点仍无响应,那么当前复制环境就临时被转换为异步复制。

在slave节点设置:

slave> set global rpl_semi_sync_slave_enabled = 1;

rpl_semi_sync_slave_enabled:用来控制slave节点是否启用半同步复制;

说明:上述修改是动态修改,建议将全部配置保存在初始化参数文件中。

配置好后,必需要从新启动slave节点的IO_THREAD线程:

slave> stop slave IO_THREAD;

slave> start slave IO_THREAD;

这一步是让slave节点从新链接master节点,注册成为半同步slave身份;

相关文章
相关标签/搜索