往期历史
1.docker安装MySQL源码编译
2.Centos7 Mysql5.6.40 主从服务搭建
3.Mysql5.6.40 主从复制故障
4.Centos7 Mysql5.6.40 主从结构 过滤复制
半同步复制
-
传统主从,从库宕机可能造成数据不一致-------解决办法:半同步复制
-
核心理念就是,什么时候返回ACK, 如果持续不返回ACK超过10s 主库自动切换回异步返回ACK模式
-
出发点是保证主从数据一致性的问题,安全的考虑
5.5版本 出现的概念,当是不建议使用,性能太差
5.6 以后出现group commit 组提交功能,来提升同步复制的性能
5.7 更加完善了, 在group commit基础上出现了 MGR
5.7的增强半同步复制新特性(强一致性):after commit; after sync;
半同步复制实现
- 加载插件
#主
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
#从
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
- 查看是否加载成功
mysql> show plugins;
- 安装错误卸载插件
mysql> UNINSTALL PLUGIN rpl_semi_sync_master;
- 启动插件
主:
SET GLOBAL rpl_semi_sync_master_enabled = 1;
从:
SET GLOBAL rpl_semi_sync_slave_enabled = 1
- 重启从库IO线程
mysql> STOP SLAVE IO_THREAD;
mysql> START SLAVE IO_THREAD;
- 查看半同步复制是否开启成功
主:show status like ‘Rpl_semi_sync_master_status’;
从:show status like ‘Rpl_semi_sync_slave_status’;