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
轉載于:https://www.cnblogs.com/paul8339/p/8023806.html
總結
以上是生活随笔為你收集整理的mysql5.7半自动同步设置【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 2008 远程桌面如何设
- 下一篇: navicat连接mysql报10061