mysql 高可用集群MHA

MHA介紹

? MHA(Master High Avalilability)MySQL高可用性環(huán)境下故障切換和主從提升的高可用軟件.在MySQL故障切換過程中,MHA能做到在10~30秒之內(nèi)自動完成數(shù)據(jù)庫的故障切換操作,并且在進(jìn)行故障切換的過程中,MHA能在最大程度上保證數(shù)據(jù)的一致性,以達(dá)到真正意義上的高可用。

? MHA還提供在線主庫切換的功能,能夠安全地切換當(dāng)前運(yùn)行的主庫到一個新的主庫中(將主庫提供為主庫),大概0.5-2s內(nèi)完成。

? MHA由兩部分組成:\color{#FF0000}{MHA Manager管理節(jié)點和MHA Node數(shù)據(jù)節(jié)點},MHA Manager可以單獨部署在一臺獨立的機(jī)器上管理多個master-slave集群,也可以部署在一臺slave節(jié)點上。MHA Node運(yùn)行在每臺MySQL服務(wù)器上,MHA Manager會定時探測集群中的master節(jié)點,當(dāng)master出現(xiàn)故障時,它可以自動將最新數(shù)據(jù)的slave提升為新的master,然后將所有其他的slave重新指向新的master。整個故障轉(zhuǎn)移過程對應(yīng)用程序完全透明。

MHA 優(yōu)點

  • 自動故障轉(zhuǎn)移快
  • 主庫崩潰不存在數(shù)據(jù)一致性問題
  • 不需要對當(dāng)前mysql環(huán)境做重大修改
  • 不需要添加額外的服務(wù)器(僅一臺manager就可管理上百個replication)
  • 性能優(yōu)秀,可工作在半同步半復(fù)制和異步復(fù)制,當(dāng)監(jiān)控mysql狀態(tài)時,僅需要每隔N秒向master發(fā)送ping包(默認(rèn)3秒),所以對性能無影響。你可以理解為MHA的性能和簡單的主從復(fù)制框架性能一樣。
  • 支持所有的存儲引擎

MHA工程流程

  • 把宕機(jī)的master二進(jìn)制日志保存下來
  • 找到binlog位置點最新的slave
  • 在binlog位置點最新的slave上用relay log修復(fù)其它slave
  • 將宕機(jī)的master上保存下來的二進(jìn)制日志恢復(fù)到含有最新位置點的slave上
  • 將含有最新位置點binlog所在的slave提升為master
  • 將其它slave重新指向新提升的master,并開啟主從復(fù)制。(重構(gòu)主從)

MHA 架構(gòu)

image.png

工具

  • manager工具

(1)masterha_check_ssh #檢查MHA的SSH配置狀況;

(2)masterha_check_repl #檢查MySQL復(fù)制狀況;

(3)masterha_manger #啟動MHA;

(4)masterha_check_status #檢測當(dāng)前MHA運(yùn)行狀態(tài);

(5)masterha_master_monitor #檢測master是否宕機(jī);

(6)masterha_master_switch #控制故障轉(zhuǎn)移(自動或者手動);

(7)masterha_conf_host #添加或刪除配置的server信息

  • node 工具,這些工具通常有MHA Manager的腳本觸發(fā),無需認(rèn)為操作。

(1)save_binary_logs #保存和復(fù)制master的二進(jìn)制日志;

(2)apply_diff_relay_logs #識別差異的中繼日志事件并將其差異的事件應(yīng)用于其他的slave;

(3)purge_relay_logs #清除中繼日志(不會阻塞SQL線程);

配置安裝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容