MariaDB 10 Slave Crash-Safe需轉爲GTID複製模式

之前寫了一篇《MySQL5.6 crash-safe replication》 ,但在Mariadb10.0.X和10.1.X上不支持relay_log_info_repository = TABLE參數,官網建議用GTID複製模式代替傳統複製模式,傳統複製模式是不支持Slave Crash-Safe的。

wKiom1Xmr7WRLV1DAAUUod9tlpw045.jpg


在mysql庫下,會有一張gtid_slave_pos表(在安裝初始化時,就已經是innodb引擎)

START TRANSACTION;
-- Statement 1
-- ...
-- Statement N
-- Update replication info
COMMIT;

這樣sql線程執行完事務後,立即會更新gtid_slave_pos表,如果在更新過程中宕機,事務會回滾,gtid_slave_pos表並不會記錄同步的點,下次重新同步複製時,從之前的POS點再次執行。


MariaDB 10默認是傳統複製,如果轉爲GTID複製很簡單,並不需要像MySQL5.6那樣,要在Slave從庫上設置log_slave_updates = 1(增加從庫的IO壓力),並重啓數據庫生效那麼麻煩。MariaDB支持熱切換GTID,你可以先以傳統複製搭建主從,然後再熱切GTID複製模式,如下圖: 

wKioL1XmrouQsk9yAAKZFfQNFDo290.jpg

wKioL1XmrtGxO7l5AALI8ghWW8M548.jpg

通過幾個簡單的步驟,Slave從庫就支持了Crash-Safe。


注:MHA0.56(最新版),還不支持MariaDB10的GTID複製模式,在故障切換時,還會以傳統複製搭建主從,所以需要每次手工熱切換下GTID模式。


參考官網:

wKiom1XmrfuwVqIiAAl72MkEipQ780.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章