mysql5.7半自动同步设置
来源:互联网 发布:筑巢软件江苏有限公司 编辑:程序博客网 时间:2024/05/17 03:02
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代表链接了介个从库
- mysql5.7半自动同步设置
- windows 7下mysql5.5.18主从同步设置
- windows 7下mysql5.5.18主从同步设置
- mysql5.7主从同步
- mysql5.7 主从同步
- MySQL5.7半同步复制
- mysql5.7-主从设置
- Mysql5.5 两台服务器互为主从同步设置
- Mysql5.7root密码设置
- MySQL5.7版本密码设置
- MySQL5.7设置root密码
- 设置mysql5.7远程连接
- 设置mysql5.7远程连接
- MySQL5.7 远程登录设置
- mysql5.7如何设置环境变量
- 设置mysql5.7远程连接
- mysql5.7设置默认编码
- mysql5.7字符编码设置
- GitHub开源控件一
- Lambda表达式详解
- /bin/bash^M:
- CHM文件(已编译的 HTML 帮助文件)打开不显示的解决办法
- org.springframework.beans.factory.BeanNotOfRequiredTypeException must be of type
- mysql5.7半自动同步设置
- 三种消息监听器
- android程序员常用工具类集合。以及第三方开源库下载
- ES索引优化
- JavaEE第一天_html标签
- iOS UITableView(UIScrollView)滑动到底部的判断
- Dubbo标签学习
- STL_Deque
- C++的s输出