標籤:mysql 半同步複製
介紹:
mysql傳統的主從複製是非同步複製模式,主伺服器把binlog日至發送到從伺服器,就認為同步完成。
mysql半同步複製模式可以確保從伺服器接收完主伺服器發送的binlog記錄檔並寫入自己的中繼日誌relay log裡,然後會給主伺服器一個反饋,告訴對方已經接收完畢。這時主庫線程才會返回給當前session告知操作完成。當出現逾時情況時,源主伺服器會暫時切換到非同步複製模式,直到至少有一台設定為半同步複製模式的從伺服器及時收到資訊為止。
配置:
1:首先配置好主從同步。
2:分別在主從庫上安裝插件,開啟semi_sync。
master:
sql>install plugin rpl_semi_sync_master soname ‘semisync_master.so‘;
sql>set global rpl_semi_sync_master_enabled = ON;
slave:
sql>install plugin rpl_semi_sync_slave soname ‘semisync_slave.so‘;
sql>set global rpl_semi_sync_slave_enabled = ON;
重啟主從複製;
sql>stop slave;
sql>start slave;
也可以在設定檔中添加如下配置,使配置生效:
#vi my.cnf
rpl_semi_sync_master_enabled = 1
or
rpl_semi_sync_slave_enabled = 1
檢查半同步複製狀態:
主庫:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/A2/wKiom1WjcWfRbh5VAAKJaUjR1ws450.jpg" title="1.jpg" alt="wKiom1WjcWfRbh5VAAKJaUjR1ws450.jpg" />
rpl_semi_sync_master_enabled 為ON,說明semi_sync已經開啟。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/A2/wKiom1WjcXeQPm-ZAAOoLoeD4dc340.jpg" title="2.jpg" alt="wKiom1WjcXeQPm-ZAAOoLoeD4dc340.jpg" />
Rpl_semi_sync_master_status為ON說明主庫上的半同步機制正常,正在運行。
Rpl_semi_sync_master_clients 表示當前以半同步方式串連主庫的從庫數量。
從庫:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6F/9F/wKioL1Wjc2DzZVdOAAIE_eaw-MU729.jpg" title="3.jpg" alt="wKioL1Wjc2DzZVdOAAIE_eaw-MU729.jpg" />
rpl_semi_sync_slave_enabled為ON說明從庫的semi_sync功能已經開啟。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6F/A2/wKiom1WjcZmCtOymAADvOnh-Hvc393.jpg" title="4.jpg" alt="wKiom1WjcZmCtOymAADvOnh-Hvc393.jpg" />
Rpl_semi_sync_slave_status為ON說明從庫上的半同步機制正常,正在運行。
查看從庫日誌,也可以看到semi_sync相關的資訊:
Slave I/O thread: Start semi-sync replication to master ‘[email protected]:3306‘ in log ‘mysql-bin.000011‘ at position 107.
本文出自 “linux營運” 部落格,請務必保留此出處http://icenycmh.blog.51cto.com/4077647/1673819
mysql半同步複製