入門
MHA是一位日本MySQL大牛用Perl寫的一套MySQL故障切換方案,來保證數(shù)據(jù)庫系統(tǒng)的高能用.在當(dāng)機(jī)的時(shí)間內(nèi)(通常10…30秒內(nèi)),完成故障切換,部署MHA,可避免主從一致性問題,節(jié)約購買新服務(wù)器的費(fèi)用,不影響服務(wù)器性能,容易安裝,不改變現(xiàn)有部署。
還支持在線切換,從當(dāng)前走運(yùn)master切換到一個(gè)新的master上,只需要很短的時(shí)間內(nèi)0.5-2秒內(nèi)),此時(shí)僅僅阻塞寫操作,并不影響讀操作,便於機(jī)器有件維護(hù)。
在有高能用,數(shù)據(jù)一致性要求的系統(tǒng)上,MHA提供了有用的功能,幾乎沒有家斷的滿足維護(hù)需要。
優(yōu)點(diǎn)
1 master自動(dòng)監(jiān)控和故障轉(zhuǎn)移
在當(dāng)前已存在的主從復(fù)制環(huán)境中,MHA可以帶著控master機(jī)器故障,并且故障自動(dòng)轉(zhuǎn)移。
即使有一些slave沒有接受新的relay log events,MHA也會(huì)從最的slave自動(dòng)識(shí)別差異的relay log events,并apply差異的event到其他slaves。因此所有的slave都是一致的。MHA秒級(jí)別故障轉(zhuǎn)移(9-12秒監(jiān)測(cè)到機(jī)器故障,隨便選7秒鐘馬上關(guān)閉電源機(jī)器避免腦裂,接下來apply差異relay logs,注冊(cè)到新的master,通常需要時(shí)間10-30秒即total downtime)。另外,在配置文件里可以配置一個(gè)slave優(yōu)先成為master。因?yàn)镸HA修復(fù)了slave之間的一致性,dba就不用去處理一致性問題。
當(dāng)遷移新的master之后,并行恢復(fù)其他slave。即使有成千上萬的slave,也不會(huì)影響恢復(fù)master時(shí)間,slave也很快完成。
DeNA公司在150+主從環(huán)境中用MHA。當(dāng)其中一個(gè)master崩潰,MHA4秒完成故障轉(zhuǎn)移,這是主動(dòng)/被動(dòng)集群解決方案無法完成的。
2互動(dòng)(手動(dòng))master故障轉(zhuǎn)移
MHA可以用來只做故障轉(zhuǎn)移,而不監(jiān)測(cè)master,MHA只作為故障轉(zhuǎn)移的交互。
3非交互式故障轉(zhuǎn)移
非交互式的故障轉(zhuǎn)移也提供(不帶著控master,自動(dòng)故障轉(zhuǎn)移)。這個(gè)特性很有用,特別是你已經(jīng)安裝了其他軟件監(jiān)控master。比如,用Pacemaker(Heartbeat)監(jiān)測(cè)master故障和vip接管,用MHA故障轉(zhuǎn)移和slave提升。
4在線切換master得不和機(jī)器
在很多情況下,有必要將master轉(zhuǎn)移到其他機(jī)器上(如替換raid控制器,提升master機(jī)器有件等)。這并不是master崩潰,但是計(jì)劃維護(hù)必須去做。計(jì)劃維護(hù)導(dǎo)致downtime,必須盡可能快的恢復(fù)??焖俚膍aster切換和優(yōu)雅的阻塞寫操作一定需的,MHA提供了這些種方式。優(yōu)雅的master切換,0.5-2秒內(nèi)阻塞寫操作。在很多情況下0.5-2秒的downtime是可以接受的,并且即使不在計(jì)劃維護(hù)窗戶。這意味著當(dāng)需要更換更快機(jī)器,升級(jí)高版本時(shí),dba可以很容易采取動(dòng)作。
5 master crash不會(huì)導(dǎo)致主從數(shù)據(jù)不一致性
當(dāng)master crash后,MHA自動(dòng)識(shí)別slave間relay logevents的不和,然后用與不和的slave,最終所有slave都同步。結(jié)合的話通過半同步一起使用,幾乎沒有任何數(shù)據(jù)丟失。
其他高能用方案
6 MHA部署不影響當(dāng)前環(huán)境設(shè)置
MHA最重要的一個(gè)設(shè)計(jì)理念就是盡可能使用簡單。使用與5.0+以上主從環(huán)境,其他HA方案需要改變mysql部署設(shè)置,MHA不會(huì)讓dba做這些些部署配置,同步和半同步環(huán)境也可以用。啟動(dòng)/停止/升級(jí)/降級(jí)/安裝/卸不搭客MHA也不用改變mysql主從(如啟動(dòng)/停止)。
當(dāng)你需要升級(jí)MHA到新版本時(shí),不需要停止mysql,僅僅更新HMA版本,然后重新啟動(dòng)MHAmanger即可。
MHA支持包含5.0/5/1/5.5(應(yīng)該也支持5.6,翻譯文檔時(shí)MHA開發(fā)者沒有更新的對(duì)5.6版本)。有時(shí)刮HA方案要求特定的mysql版本(如mysqlcluster,mysql with global transaction id等),而且你可能不想僅僅為了MasterHA而遷移應(yīng)用。很多情況下,公司已經(jīng)部署了許多傳統(tǒng)的mysql應(yīng)用,開發(fā)或dba不想花太多時(shí)間遷移到不和的存儲(chǔ)引擎或新的特性(newer bleeding edge distributions不知道這個(gè)是否該這麼翻譯)。
7不增加服務(wù)器費(fèi)用
MHA包含MHA Manager和MHA node。MHA node走運(yùn)在每臺(tái)mysql服務(wù)器上,Manager可以單獨(dú)部署一臺(tái)機(jī)器,帶著控100+以上master,總服務(wù)器數(shù)量不會(huì)有太增加。需要注意的是Manager也可以將走在slaves中的一臺(tái)機(jī)器上。
8性能沒有影響
當(dāng)監(jiān)控master,MHA只是幾秒鐘馬上(默認(rèn)3秒)發(fā)送ping包,不發(fā)送大的查詢。主從復(fù)制性能不受影響
9適合用任何存儲(chǔ)引擎
新聞名稱:關(guān)于mysql高可用方案MHA的一些介紹
文章URL:http://www.rwnh.cn/news/33119.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、做網(wǎng)站、全網(wǎng)營銷推廣、App開發(fā)、軟件開發(fā)、動(dòng)態(tài)網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)