上篇文章介紹了MMM架構(gòu)的實現(xiàn)方法,但是上篇文章的MMM方案的復(fù)制是異步復(fù)制,異步復(fù)制的主要問題在于當(dāng)主從存在延時時如果主機出現(xiàn)了故障導(dǎo)致了主從切換時這時將會存在數(shù)據(jù)丟失;mysql為了解決異步復(fù)制數(shù)據(jù)丟失的問題增加了半同步復(fù)制,半同步復(fù)制存在5.5以上的版本,半同步復(fù)制的原理是客戶端在事務(wù)提交時必須等待從庫接收到binlog的回應(yīng)之后才能提交事務(wù)(當(dāng)存在多個從庫時默認(rèn)只需要一個從庫接受到了bInlog即可,也可以配置必須每一個從庫都必須接收到binlog但是這樣對性能影響就會很大),如果從庫宕機或者故障導(dǎo)致binlog沒有及時傳送到從庫(由參數(shù)rpl_semi_sync_master_timeout控制,默認(rèn)是10S),這時mysql會自動轉(zhuǎn)為異步復(fù)制,當(dāng)從庫又重新啟動有新的一條binglog從主庫發(fā)送到從庫在規(guī)定的時間內(nèi)得到響應(yīng)mysql又會自動轉(zhuǎn)換為半同步復(fù)制,所以半同步復(fù)制對主從之間的網(wǎng)絡(luò)要求比較高。
mysql版本:5.6
方案:MMM+半同步復(fù)制
一、原理
5.6的半同步復(fù)制是在客戶端執(zhí)行commit主庫寫入完binlog然后執(zhí)行數(shù)據(jù)刷新到磁盤后才由dump線程將binlog記錄發(fā)送到從庫的io線程。
二、安裝配置
首先說明一下,當(dāng)前的配置是基于MMM方案的配置,由于MMM方案是兩主一從,所以我在其中的雙主上面配置半同步復(fù)制,從庫上面還是原先的異步復(fù)制。半同步復(fù)制是基于插件來實現(xiàn)的,主從上面各自執(zhí)行不同的插件。
1.查詢是否支持動態(tài)插件
主從上面都需要查看是否支持動態(tài)插件