MHA介紹
MHA是一位日本MySQL大牛用Perl寫的一套MySQL故障切換方案,來保證數據庫系統的高可用.在宕機的時間內(通常10—30秒內),完成故障切換,部署MHA,可避免主從一致性問題,節約購買新服務器的費用,不影響服務器性能,易安裝,不改變現有部署。
還支持在線切換,從當前運行master切換到一個新的master上面,只需要很短的時間(0.5-2秒內),此時僅僅阻塞寫操作,并不影響讀操作,便于主機硬件維護。
在有高可用,數據一致性要求的系統上,MHA 提供了有用的功能,幾乎無間斷的滿足維護需要。
優點:
1.master自動監控和故障轉移
在當前已存在的主從復制環境中,MHA可以監控master主機故障,并且故障自動轉移。
即使有一些slave沒有接受新的relay log events,MHA也會從最新的slave自動識別差異的relay log events,并apply差異的event到其他slaves。因此所有的slave都是一致的。MHA秒級別故障轉移(9-12秒監測到主機故障,任選7秒鐘關閉電源主機避免腦裂,接下來apply差異relay logs,注冊到新的master,通常需要時間10-30秒即total downtime)。另外,在配置文件里可以配置一個slave優先成為master。因為MHA修復了slave之間的一致性,dba就不用去處理一致性問題。
當遷移新的master之后,并行恢復其他slave。即使有成千上萬的slave,也不會影響恢復master時間,slave也很快完成。
DeNA公司在150+主從環境中用MHA。當其中一個master崩潰,MHA4秒完成故障轉移,這是主動/被動集群解決方案無法完成的。
2.互動(手動)master故障轉移
MHA可以用來只做故障轉移,而不監測master,MHA只作為故障轉移的交互。
3.非交互式故障轉移
非交互式的故障轉移也提供(不監控master,自動故障轉移)。這個特性很有用,特別是你已經安裝了其他軟件監控master。比如,用Pacemaker(Heartbeat)監測master故障和vip接管,用MHA故障轉移和slave提升。
4.在線切換master到不同主機
在很多情況下,有必要將master轉移到其他主機上(如替換raid控制器,提升master機器硬件等等)。這并不是master崩潰,但是計劃維護必須去做。計劃維護導致downtime,必須盡可能快的恢復??焖俚膍aster切換和優雅的阻塞寫操作是必需的,MHA提供了這種方式。優雅的master切換, 0.5-2秒內阻塞寫操作。在很多情況下0.5-2秒的downtime是可以接受的,并且即使不在計劃維護窗口。這意味著當需要更換更快機器,升級高版本時,dba可以很容錯新取動作。
新聞熱點
疑難解答