在線切換
在master上執(zhí)行
mysql>install plugin rpl_semi_sync_master SONAME 'semisync_master.so';
在slave上執(zhí)行
mysql>install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';
可以使用show plugins;查看安裝成功沒有
mysql>set global rpl_semi_sync_master_enabled=1;
mysql>set global rpl_semi_sync_master_timeout=1000;
mysql>set global rpl_semi_sync_slave_enabled=1;
stop slave io_thread;
start slave io_thread;
停機(jī)切換
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #如果超過1秒鐘Slave沒響應(yīng),就會從半同步轉(zhuǎn)向傳統(tǒng)復(fù)制
rpl_semi_sync_slave_enabled=1
監(jiān)控
show variables like '%semi%'; #是否開啟半同步
show global status like '%semi%';
Rpl_semi_sync_master_no_tx #這個值是沒有經(jīng)過半同步復(fù)制的事物個數(shù)
Rpl_semi_sync_master_yes_tx #和上述值意義相反
半同步增加-等待多個Slave的應(yīng)答
- Master接收到N個slave的應(yīng)答后,才commit十五
mysql>set global rpl_semi_sync_master_wait_for_slave_count=N