mysql5.7半自动同步设置【转】
mysql的主从复制主要有3种模式:
a..主从同步复制:数据完整性好,但是性能消耗高
b.主从异步复制:性能消耗低,但是容易出现主从数据唯一性问题
c.主从半自动复制:介于上面两种之间。既能很好的保持完整性,又能提高性能
所以前面文章配置完主从之后,想改成半自动复制,下面是步骤:
1.主从的各个节点都要安装半自动复制插件,方法是登陆mysql执行一下脚本:
主库:
install plugin rpl_semi_sync_master soname 'semisync_master.so';
从库:
INSTALL PLUGIN rpl_semi_sync_slave SONAME
'semisync_slave.so'
;
执行完可以查看安装状态,没有启动,所以‘rpl_semi_sysnc_master_enabled’是‘OFF’
show global variables like 'rpl%';
2.在主从数据库的my.cnf里面加入下面:
在Master和Slave的my.cnf中编辑:
# On Master
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #此单位是毫秒
#可以不写,这里只为演示,默认就是AFTER_SYNC
#rpl_semi_sync_master_wait_point=AFTER_SYNC
# On Slave
[mysqld]
rpl_semi_sync_slave_enabled=1
新版本的semi sync 增加了rpl_semi_sync_master_wait_point参数 来控制半同步模式下 主库在返回给会话事务成功之前提交事务的方式。
该参数有两个值:
AFTER_COMMIT(5.6默认值)
master将每个事务写入binlog ,传递到slave 刷新到磁盘(relay log),同时主库提交事务。master等待slave 反馈收到relay log,只有收到ACK后master才将commit OK结果反馈给客户端。
AFTER_SYNC(5.7默认值,但5.6中无此模式)
master 将每个事务写入binlog , 传递到slave 刷新到磁盘(relay log)。master等待slave 反馈接收到relay log的ack之后,再提交事务并且返回commit OK结果给客户端。 即使主库crash,所有在主库上已经提交的事务都能保证已经同步到slave的relay log中。
因此5.7引入了after_sync模式,带来的主要收益是解决after_commit导致的master crash主从间数据不一致问题,因此在引入after_sync模式后,所有提交的数据已经都被复制,故障切换时数据一致性将得到提升。
3.查看状态
showstatus like "%rpl_semi%";
注意看RPL_SEMI_SYNC_MASTER_CLIENTS 后面的value代表链接了介个从库
转自
http://blog.csdn.net/yuanfen99xia/article/details/51837044
最新文章
- MatLab/HR
- 最简单粗暴的http文件列表
- Windows环境下 PHP+Apache+Mysql配置
- Excel_常用快捷键
- SQL时间戳的使用
- Ember模板中的操作指向
- 查看linux的版本
- java 命名代码检查-注解处理器
- 解题的小问题(C++)
- for/foreach/linq效率测试
- 关于脱离laravel框架使用Illuminate/Validation验证器
- 华为机试题【10】-求数字基root
- Python爬虫入门教程 41-100 Fiddler+夜神模拟器+雷电模拟器配置手机APP爬虫部分
- redis hashmap数据结构分析
- 大话C#之委托
- 蓝桥杯 历届试题 幸运数 dfs
- Vue系列之 =>; 路由的嵌套
- BZOJ1965 [Ahoi2005]SHUFFLE 洗牌 快速幂
- docker-compose网络设置之networks
- 高可用Hadoop平台-答疑篇