Mha集群環境重建方法、裝置和系統的製作方法
2023-10-09 00:35:44 1
Mha集群環境重建方法、裝置和系統的製作方法
【專利摘要】本發明提供了一種MHA集群環境重建方法、裝置和系統,其中方法包括若master出現故障,MHA?Monitor接收來自MHA管理節點MHA?Manager發送的故障信息,故障信息包括故障master的地址信息;MHA?Monitor根據地址信息查找對應的故障master,並對故障master進行監控;若故障master恢復正常,MHA?Monitor向MHA?Manager發送恢復信息,恢復信息中包括恢復正常的原故障master的地址信息,MHA?Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。本發明通過增加MHA?Monitor,可以在MHA集群環境發生變化時,實現自動進行MHA集群環境重建,操作簡單。
【專利說明】MHA集群環境重建方法、裝置和系統
【技術領域】
[0001]本發明涉及資料庫管理【技術領域】,尤其涉及一種主高可用(MHA, Master HighAvailability)集群環境重建方法、裝置和系統。
【背景技術】
[0002]MySQL是開放原始碼的關係資料庫管理系統,MHA是應用於MySQL的故障轉移工具。
[0003]MHA有兩部分組成:MHA管理節點(MHA Manager)和MHA數據節點(MHA Node),其中,MHA Manager可以單獨部署在一臺獨立機器上管理多個主-從(master-slave)集群,也可以部署在一臺slave上,MHA node運行在每臺MySQL伺服器上。
[0004]MHA集群環境系統中,每個master-slave集群必須最少包括三個MHA node, 一個MHA node 充當 master, —個 MHA node 充當備用 master,另一個 MHA node 充當 slave,實現
一主多備。
[0005]MHA Manager探測MHA集群環境內的MHA node,當發現主庫(master)出現故障的時候,它可以將具有最新數據的從庫(slave)提升為新的master,然後將其它的slave導向新的master上,由此完成master的故障轉移,MHA node通過監控具備解析和清理腳本加快故障轉移。
[0006]但是現有技術中,在原master發生故障,原slave提升為新的master後,MHAManager將不再對故障master進行探測,若原master重新恢復是無法自動再加入到MHA集群環境中的,如果要加入必須進行手工操作,如此,容易造成原master重新加入MHA集群環境不及時,且操作繁瑣。
【發明內容】
[0007]為了解決上述技術問題,本發明提供一種MHA集群環境重建方法、裝置和系統,如果MHA集群環境發生變化,可以實現自動進行MHA集群環境重建。
[0008]為了達到本發明目的,本發明提供了一種高可用MHA集群環境重建方法,包括:若主庫master出現故障,MHA監控節點MHA Monitor接收來自MHA管理節點MHA Manager發送的故障信息,所述故障信息包括故障master的地址信息;MHA Monitor根據所述地址信息查找對應的故障master,並對所述故障master進行監控;若所述故障master恢復正常,MHA Monitor向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave。
[0009]進一步地,該方法之前還包括:MHA Manager向MHA集群環境內的master和Slave發送ping報文,如果master沒有在預先設置的時間內向MHA Manager返回ping報文,MHAManager判斷出master出現故障;MHA Manager將備用master提升為新master,將slave導向新master。[0010]進一步地,MHA Monitor對故障master進行監控,包括:MHA Monitor向所述地址信息對應的故障master發送ping報文,通過在預先設置的時間內故障master是否返回ping報文來監控故障master是否恢復。
[0011]進一步地,MHA Monitor向MHA Manager發送恢復信息,包括:若在所述預先設置的時間內收到故障master返回的ping報文,則判斷出故障master恢復正常,MHA Monitor向所述MHA Manager發送恢復信息。
[0012]進一步地,在所述將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave後,該方法還包括:MHA Manager將當前master的數據在所述新Slave中進行備份。
[0013]本發明提供了一種MHA集群環境重建裝置,包括:接收模塊,用於當master出現故障時,接收來自MHA Manager發送的故障信息,所述故障信息包括故障master的地址信息;獲取模塊,用於獲取所述故障信息中故障master的地址信息;監控模塊,用於通過所述地址信息查找對應的故障master,對所述故障master進行監控,並將監控信息發送給判斷模塊;判斷模塊,用於根據所述監控信息判斷故障master的狀態;發送模塊,用於若故障master恢復正常,向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。
[0014]進一步地,監控模塊用於對所述故障master進行監控,包括:所述監控模塊用於通過在預先設置的時間內故障master是否有返回ping報文來監控故障master是否恢復;判斷模塊用於根據所述監控信息判斷故障master的狀態,包括:所述判斷模塊用於若接收到的監控信息是在預先設置的時間內沒有收到故障master返回的ping報文,則判斷出故障master沒有恢復正常,若接收到的監控信息是在預先設置的時間內收到故障master返回的ping報文,則判斷出故障master恢復正常。
[0015]一種MHA集群環境重建裝置,包括:MHA監控節點MHA Monitor、MHA管理節點MHAManager 和 MHA 數據節點 MHA Node,MHA Node 包括主庫 master、備用 master 和從庫 slave,其中,MHA Manager,用於若master出現故障,將故障信息發送給MHA Monitor,所述故障信息包括故障master的地址信息;接收來自MHA Monitor的恢復信息,獲取恢復信息中恢復正常的原故障master的地址信息,根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave ;MHA Monitor,用於接收來自MHA Manager發送的故障信息,獲取故障信息中故障master的地址信息,根據地址信息查找對應的故障master,並對故障master進行監控;若故障master恢復正常,向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息。
[0016]進一步地,MHA Manager,還用於在所述將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave後,將當前master的數據在新Slave進行備份。
[0017]與現有技術相比,本發明包括:若master出現故障,MHA Monitor接收來自MHA管理節點MHA Manager發送的故障信息,故障信息包括故障master的地址信息;MHA Monitor根據地址信息查找對應的故障master,並對故障master進行監控;若故障master恢復正常,MHA Monitor向MHAManager發送恢復信息,恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。本發明通過在MHA集群環境中增加MHAMonitor,在master發生故障後,仍然可以對故障master進行監控,如果故障master重新恢復,可以通知MHA Manager將恢復正常的原故障master再加入到MHA集群環境中,如此,可以在MHA集群環境發生變化時,實現自動進行MHA集群環境重建,不必進行手工操作,使得操作簡單。
【專利附圖】
【附圖說明】
[0018]圖1是本發明MHA集群環境重建系統的架構示意圖。
[0019]圖2是本發明MHA集群環境重建方法的流程示意圖。
[0020]圖3是本發明MHA集群環境重建裝置的結構示意圖。
【具體實施方式】
[0021]以下將結合附圖所示的【具體實施方式】對本發明進行詳細描述。
[0022]圖1是本發明MHA集群環境重建系統的架構示意圖,如圖1所示,MHA集群環境系統包括 MHA 監控節點(MHA Monitor)、MHA Manager 和 MHA Node,其中,MHA Monitor 和 MHAManager可以單獨部署在一臺獨立機器上管理多個主-從(master-slave)集群,也可以部署在一臺slave上,MHA node運行在每臺MySQL伺服器上。
[0023]MHA Manager 探測 MHA 集群環境內的 MHA node,MHA Monitor 監控故障 master 的切換和增加。當master出現故障時,MHA Manager將備用master提升為新master,然後將其它的slave導向新master上。MHA Monitor對故障master進行監控,當原故障master重新恢復時,MHA Monitor通知MHA Manager將原故障master重新加入到MHA集群環境中。
[0024]圖2是本發明MHA集群環境重建方法的流程示意圖,如圖2所示,具體包括:
[0025]步驟21,當master出現故障時,MHA Monitor接收來自MHA Manager發送的故障信息,該故障信息包括故障master的地址信息;
[0026]在本步驟之前,MHA Manager探測MHA集群環境內的MHA node的存活狀態,例如可以通過ping的方式,MHA Manager向MHA node發送ping報文,在預先設置的時間內MHAnode是否有返回ping報文來探測MHA node是否存活。如果master沒有在預先設置的時間內向MHA Manager返回ping報文,MHA Manager判斷出master出現故障。MHA Manager將備用master提升為新master,然後將其它的slave導向新master上。MHA Manager完成主備切換後,因為故障master和新master有可能都被認為是master, MySQL就有可能會向故障master和新master都發數據,所以MHA Manager不再對故障master進行探測,以避免數據不一致。為了仍然對故障master進行監控,MHA Manager將故障信息發送給MHAMonitor。
[0027]在本步驟中,MHA Manager將故障信息發送給MHA Monitor, MHA Monitor接收來自MHA Manager發送的故障信息,該故障信息包括故障master的地址信息。
[0028]步驟22, MHA Monitor根據地址信息查找對應的故障master,並對故障master進行監控;
[0029]在本步驟中,MHA Monitor通過地址信息查找對應的故障master,並對故障master進行監控,例如可以通過ping的方式,MHA Monitor向故障master發送ping報文,在預先設置的時間內故障master是否有返回ping報文來監控故障master是否存活。
[0030]步驟23,若故障master恢復正常,MHA Monitor向MHA Manager發送恢復信息,該恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。
[0031]在本步驟中,MHA Monitor若在預先設置的時間內收到故障master返回的ping報文,則判斷出故障master恢復正常。MHA Monitor向MHA Manager發送恢復信息,該恢復信息中包括恢復正常的原故障master的地址信息。
[0032]MHA Manager接收來自MHA Monitor的恢復信息,並從恢復信息中獲取恢復正常的原故障master的地址信息,根據地址信息查找恢復正常的原故障master。MHA Manager將恢復正常的原故障master加入到MHA集群環境中,成為新Slave,並將當前master的數據在新Slave進行備份。
[0033]本發明通過在MHA集群環境中增加MHA Monitor,在master發生故障後,仍然可以對故障master進行監控,如果故障master重新恢復,可以通知MHA Manager將恢復正常的原故障master再加入到MHA集群環境中,如此,可以在MHA集群環境發生變化時,實現自動進行MHA集群環境重建,不必進行手工操作,使得操作簡單。
[0034]圖3是本發明MHA集群環境重建裝置的結構示意圖,該MHA集群環境重建裝置是MHA Monitor,如圖3所示,具體包括:
[0035]接收模塊,用於當master出現故障時,接收來自MHAManager發送的故障信息,該故障信息包括故障master的地址信息;
[0036]獲取模塊,用於獲取故障信息中故障master的地址信息;
[0037]監控模塊,用於通過地址信息查找對應的故障master,對故障master進行監控,並將監控信息發送給判斷模塊;
[0038]具體地,監控模塊通過地址信息查找對應的故障master,並對故障master進行監控,例如可以通過ping的方式,監控模塊向故障master發送ping報文,在預先設置的時間內故障master是否有返回ping報文來監控故障master,並將監控信息發送給判斷模塊。
[0039]判斷模塊,用於根據監控信息判斷故障master的狀態;
[0040]具體地,若接收到的監控信息是在預先設置的時間內沒有收到故障master返回的Ping報文,則判斷模塊判斷出故障master沒有恢復正常。若接收到的監控信息是在預先設置的時間內收到故障master返回的ping報文,則判斷模塊判斷出故障master恢復正
堂
巾O
[0041]發送模塊,用於若故障master恢復正常,向MHA Manager發送恢復信息,該恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。
[0042]具體地,發送模塊向MHA Manager發送恢復信息,該恢復信息中包括恢復正常的原故障master的地址信息。MHA Manager從恢復信息中獲取恢復正常的原故障master的地址信息,根據地址信息查找恢復正常的原故障master。MHA Manager將恢復正常的原故障master加入到MHA集群環境中,成為新Slave,並將當前master的數據在新Slave進行備份。[0043]本發明通過MHA集群環境重建裝置,在master發生故障後,仍然可以對故障master進行監控,如果故障master重新恢復,可以通知MHA Manager將恢復正常的原故障master再加入到MHA集群環境中,如此,可以在MHA集群環境發生變化時,實現自動進行MHA集群環境重建,不必進行手工操作,使得操作簡單。
[0044]請再次參考圖1,本發明MHA集群環境重建系統,包括MHA Monitor、MHA Manager和 MHA Node, MHA Node 包括 master、備用 master 和 slave,其中:
[0045]MHA Manager,用於探測MHA集群環境內的MHA node的存活狀態,如果判斷出master出現故障,MHA Manager將備用master提升為新master,將其它的slave導向新master,並將故障信息發送給MHA Monitor,該故障信息包括故障master的地址信息;接收來自MHA Monitor的恢復信息,獲取恢復信息中恢復正常的原故障master的地址信息,根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。
[0046]MHA Monitor,用於接收來自MHA Manager發送的故障信息,獲取故障信息中故障master的地址信息,根據地址信息查找對應的故障master,並對故障master進行監控;若故障master恢復正常,向MHA Manager發送恢復信息,該恢復信息中包括恢復正常的原故障master的地址信息。
[0047]本發明通過在MHA集群環境中增加MHA Monitor,在master發生故障後,仍然可以對故障master進行監控,如果故障master重新恢復,可以通知MHA Manager將恢復正常的原故障master再加入到MHA集群環境中,如此,可以在MHA集群環境發生變化時,實現自動進行MHA集群環境重建,不必進行手工操作,使得操作簡單。
[0048]應當理解,雖然本說明書根據實施方式加以描述,但並非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。
[0049]上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們並非用於限制本發明的保護範圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護範圍之內。
【權利要求】
1.一種主高可用MHA集群環境重建方法,其特徵在於,包括: 若主庫master出現故障,MHA監控節點MHA Monitor接收來自MHA管理節點MHAManager發送的故障信息,所述故障信息包括故障master的地址信息; MHA Monitor根據所述地址信息查找對應的故障master,並對所述故障master進行監控; 若所述故障master恢復正常,MHA Monitor向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave。
2.根據權利要求1所述的MHA集群環境重建方法,其特徵在於,該方法之前還包括: 所述MHA Manager向MHA集群環境內的master和Slave發送ping報文,如果master沒有在預先設置的時間內向MHA Manager返回ping報文,MHA Manager判斷出master出現故障;
所述MHA Manager將備用master提升為新master,將slave導向新master。
3.根據權利要求1所述的MHA集群環境重建方法,其特徵在於,所述MHAMonitor對故障master進行監控,包括: MHA Monitor向所述地址信息對應的故障master發送ping報文,通過在預先設置的時間內故障master是否返回ping報文來監控故障master是否恢復。
4.根據權利要求3所述的MHA集群環境重建方法,其特徵在於,所述MHAMonitor向MHA Manager發送恢復信息,包括: 若在所述預先設置的時間內收到故障master返回的ping報文,則判斷出故障master恢復正常,MHA Monitor向所述MHA Manager發送恢復信息。
5.根據權利要求1所述的MHA集群環境重建方法,其特徵在於,在所述將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave後,該方法還包括: MHA Manager將當前master的數據在所述新Slave中進行備份。
6.一種MHA集群環境重建裝置,其特徵在於,包括: 接收模塊,用於當master出現故障時,接收來自MHAManager發送的故障信息,所述故障信息包括故障master的地址信息; 獲取模塊,用於獲取所述故障信息中故障master的地址信息; 監控模塊,用於通過所述地址信息查找對應的故障master,對所述故障master進行監控,並將監控信息發送給判斷模塊; 判斷模塊,用於根據所述監控信息判斷故障master的狀態; 發送模塊,用於若故障master恢復正常,向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息,MHA Manager根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave。
7.根據權利要求6所述的集群環境重建裝置,其特徵在於,所述監控模塊用於對所述故障master進行監控,包括:所述監控模塊用於通過在預先設置的時間內故障master是否有返回ping報文來監控故障master是否恢復; 所述判斷模塊用於根據所述監控信息判斷故障master的狀態,包括:所述判斷模塊用於若接收到的監控信息是在預先設置的時間內沒有收到故障master返回的ping報文,則判斷出故障master沒有恢復正常,若接收到的監控信息是在預先設置的時間內收到故障master返回的ping報文,則判斷出故障master恢復正常。
8.一種MHA集群環境重建裝置,其特徵在於,包括:MHA監控節點MHA Monitor, MHA管理節點MHA Manager和MHA數據節點MHA Node, MHA Node包括主庫master、備用master和從庫slave,其中, 所述MHA Manager,用於若master出現故障,將故障信息發送給MHA Monitor,所述故障信息包括故障master的地址信息;接收來自MHA Monitor的恢復信息,獲取恢復信息中恢復正常的原故障master的地址信息,根據地址信息查找恢復正常的原故障master,並將恢復正常的原故障master加入到MHA集群環境中,成為新Slave ; 所述MHA Monitor,用於接收來自MHA Manager發送的故障信息,獲取故障信息中故障master的地址信息,根據地址信息查找對應的故障master,並對故障master進行監控;若故障master恢復正常,向MHA Manager發送恢復信息,所述恢復信息中包括恢復正常的原故障master的地址信息。
9.根據權利要求8所述的集群環境重建系統,其特徵在於,所述MHAManager,還用於向MHA集群環境內的MHA node發送ping報文,如果master沒有在預先設置的時間內向MHAManager返回ping報文,則判斷出master出現故障,將備用master提升為新master,將slave 導向新 master。
10.根據權利要求8所述的集群環境重建系統,其特徵在於,所述MHAManager,還用於在所述將恢復正常的原故障master加入到MHA集群環境中,成為新從庫Slave後,將當前master的數據在新Slave進行備份。
【文檔編號】G06T17/00GK104036548SQ201410309599
【公開日】2014年9月10日 申請日期:2014年7月1日 優先權日:2014年7月1日
【發明者】初賢哲, 喬鑫 申請人:浪潮(北京)電子信息產業有限公司