本發(fā)明涉及數(shù)據(jù)庫集群領域,具體是一種數(shù)據(jù)庫集群節(jié)點故障自動修復方法及系統(tǒng),其從數(shù)據(jù)庫集群狀態(tài)異常診斷至數(shù)據(jù)庫集群當前發(fā)生故障的節(jié)點的修復,整個過程均自動完成,無需人工參與,用于大大減輕運維和技術人員對數(shù)據(jù)庫異常修復的工作量,同時用于及時響應應用對數(shù)據(jù)庫的操作。
背景技術:
隨著各領域信息化進程的加深,各領域相關業(yè)務數(shù)據(jù)已逐漸成為寶貴資產(chǎn),而與上述業(yè)務數(shù)據(jù)相關的數(shù)據(jù)庫的高可用性越來越受到重視,數(shù)據(jù)庫集群就是解決數(shù)據(jù)庫高可用的方案之一。
但數(shù)據(jù)庫集群在使用過程中,有時會因發(fā)生宕機或人為不正常操作的原因而關閉其中的某個或某些個數(shù)據(jù)庫,造成數(shù)據(jù)庫集群不可用和數(shù)據(jù)丟失的現(xiàn)象,需要數(shù)據(jù)庫相關人員及時對數(shù)據(jù)庫集群進行修復。
而在實際應用過程中,從發(fā)現(xiàn)數(shù)據(jù)庫集群不可用到數(shù)據(jù)庫集群恢復需要較長的時間,嚴重影響相關應用的正常運行。
現(xiàn)有技術中存在一些用于對數(shù)據(jù)庫集群狀態(tài)監(jiān)控的工具,但通常需要人為分析數(shù)據(jù)庫集群中節(jié)點不能正常啟動的原因,之后在修改故障節(jié)點相關配置參數(shù)后,啟動數(shù)據(jù)庫集群節(jié)點,使用非常不便,且危害系數(shù)較大。
此為現(xiàn)有技術的不足之處。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是,針對現(xiàn)有技術的不足,提供一種數(shù)據(jù)庫集群節(jié)點故障自動修復方法及系統(tǒng),用于在數(shù)據(jù)庫集群故障時,主動地對數(shù)據(jù)庫集群故障進行修復,從而達到減輕運維及技術人員對數(shù)據(jù)庫集群節(jié)點數(shù)據(jù)庫異常修復的工作量、及時響應應用對數(shù)據(jù)庫的操作的目的。
為解決上述技術問題,本發(fā)明提供了一種數(shù)據(jù)庫集群節(jié)點故障自動修復方法,包括:
步驟a、監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài);
步驟b、根據(jù)步驟a當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則執(zhí)行步驟c;
步驟c、確定出數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點;
步驟d、遍歷步驟c中確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,對當前遍歷出的各相應節(jié)點分別進行修復。
其中,上述步驟d中對每個當前遍歷出的發(fā)生故障的節(jié)點進行修復的方法步驟包括:
步驟s1、獲取該當前遍歷出的發(fā)生故障的節(jié)點的運行日志;
步驟s2、基于步驟s1中獲取的當前遍歷出的發(fā)生故障的節(jié)點的運行日志,對應定位出該當前遍歷出的發(fā)生故障的節(jié)點的異常類型;
步驟s3、基于步驟s2中定位出的該當前遍歷出的發(fā)生故障的節(jié)點的異常類型,對應調(diào)用預先設定的與該定位出的異常類型相對應的修復方法,對該當前遍歷出的發(fā)生故障的數(shù)據(jù)庫集群節(jié)點進行修復。
其中,所述的步驟a采用心跳機制周期性地監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài)。
本發(fā)明還提供了一種數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng),包括:
數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊,用于監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài);
數(shù)據(jù)集群節(jié)點日志模塊,用于記錄數(shù)據(jù)集群各節(jié)點的運行日志;
存儲模塊,用于本系統(tǒng)的數(shù)據(jù)存儲;
控制模塊,連接所述的數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊、數(shù)據(jù)集群節(jié)點日志模塊和存儲模塊,其基于數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則確定出數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點;之后遍歷該確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,對當前遍歷出的各相應節(jié)點分別進行修復。
在該所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)中,所述的數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊采用心跳機制周期性地監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài)。
在該所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)中,所述的控制模塊對每個當前遍歷出的發(fā)生故障的節(jié)點進行修復的方法步驟包括:
步驟p1、獲取該當前遍歷出的發(fā)生故障的節(jié)點的運行日志;
步驟p2、基于步驟p1中獲取的當前遍歷出的發(fā)生故障的節(jié)點的運行日志,對應定位出該當前遍歷出的發(fā)生故障的節(jié)點的異常類型;
步驟p3、基于步驟p2中定位出的該當前遍歷出的發(fā)生故障的節(jié)點的異常類型,對應調(diào)用存儲模塊中預先存儲的與該定位出的異常類型相對應的修復方法,對該當前遍歷出的發(fā)生故障的數(shù)據(jù)庫集群節(jié)點進行修復。
與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:
本發(fā)明在判定數(shù)據(jù)庫集群狀態(tài)為故障狀態(tài)時,能夠自動修復數(shù)據(jù)庫集群故障節(jié)點,從而在很大程度上減少人工修復數(shù)據(jù)庫集群節(jié)點的操作,進而提高數(shù)據(jù)庫的可用性。
由此可見,本發(fā)明與現(xiàn)有技術相比,具有突出的實質(zhì)性特點和顯著的進步,其實施的有益效果也是顯而易見的。
附圖說明
圖1為本發(fā)明所述數(shù)據(jù)庫集群節(jié)點故障自動修復方法的方法流程示意圖;
圖2為本發(fā)明所述數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)的原理結構框圖示意圖。
具體實施方式
為使本發(fā)明的技術方案和優(yōu)點更加清楚,下面將結合附圖,對本發(fā)明的技術方案進行清楚、完整地描述。
具體實施方式1:
如圖1所示,本發(fā)明的一種數(shù)據(jù)庫集群節(jié)點故障自動修復方法,包括:
步驟a、監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài);
步驟b、根據(jù)步驟a當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則執(zhí)行步驟c;
步驟c、確定出數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點;
步驟d、遍歷步驟c中確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,對當前遍歷出的各相應節(jié)點分別進行修復。
使用時,基于當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則確定出數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,之后通過遍歷的方式,串行修復上述確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點。本發(fā)明在數(shù)據(jù)庫集群故障時,主動地對數(shù)據(jù)庫集群故障進行修復,從而達到了減輕運維及技術人員對數(shù)據(jù)庫集群節(jié)點數(shù)據(jù)庫異常修復的工作量、及時響應應用對數(shù)據(jù)庫的操作的目的。
作為優(yōu)選,上述步驟d中對每個當前遍歷出的發(fā)生故障的節(jié)點進行修復的方法步驟包括:
步驟s1、獲取該當前遍歷出的發(fā)生故障的節(jié)點的運行日志;
步驟s2、基于步驟s1中獲取的當前遍歷出的發(fā)生故障的節(jié)點的運行日志,對應定位出該當前遍歷出的發(fā)生故障的節(jié)點的異常類型;
步驟s3、基于步驟s2中定位出的該當前遍歷出的發(fā)生故障的節(jié)點的異常類型,對應調(diào)用預先設定的與該定位出的異常類型相對應的修復方法,對該當前遍歷出的發(fā)生故障的數(shù)據(jù)庫集群節(jié)點進行修復。
本發(fā)明基于數(shù)據(jù)庫集群節(jié)點的運行日志,對于每個當前發(fā)生故障的數(shù)據(jù)庫集群節(jié)點,通過其運行日志,對應定位出其異常類型,進而對應調(diào)用預先設定的與該定位出的異常類型相對應的修復方法,對該當前發(fā)生故障的數(shù)據(jù)庫集群節(jié)點進行修復,便于實現(xiàn)。
其中,所述的步驟a采用心跳機制周期性地監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài)。具體地,在本實施方式中,所述的心跳機制通過數(shù)據(jù)庫的執(zhí)行命令及其相關參數(shù)創(chuàng)建的心跳檢測機制,獲取當前數(shù)據(jù)庫集群的運行狀態(tài),即通過設置定時任務,定時觸發(fā)該心跳機制。
如圖2所示,本發(fā)明還提供了一種數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)。本發(fā)明所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)包括:
數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊,用于監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài);
數(shù)據(jù)集群節(jié)點日志模塊,用于記錄數(shù)據(jù)集群各節(jié)點的運行日志;
存儲模塊,用于本系統(tǒng)的數(shù)據(jù)存儲;
控制模塊,連接所述的數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊、數(shù)據(jù)集群節(jié)點日志模塊和存儲模塊,其基于數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則確定出數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點;之后遍歷該確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,對當前遍歷出的各相應節(jié)點分別進行修復。
本發(fā)明所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)工作時,通過數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài),之后將當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài)發(fā)送給控制模塊,控制模塊基于接收到的數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊當前監(jiān)控到的數(shù)據(jù)庫集群的運行狀態(tài),判定當前數(shù)據(jù)庫集群是否發(fā)生故障,若判定結果為當前數(shù)據(jù)庫集群發(fā)生故障,則確定數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點,之后串行對該確定出的數(shù)據(jù)庫集群當前發(fā)生故障的各節(jié)點進行修復,既實現(xiàn)了對數(shù)據(jù)庫集群故障節(jié)點的自動修復,也在很大程度上縮減了從發(fā)現(xiàn)數(shù)據(jù)庫集群故障到數(shù)據(jù)庫集群恢復的時間間隔長度,這在很大程度上確保了相關應用的正常運行。
在該所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)中,所述的數(shù)據(jù)庫集群運行狀態(tài)監(jiān)控模塊采用心跳機制周期性地監(jiān)控數(shù)據(jù)庫集群的運行狀態(tài)。
在該所述的數(shù)據(jù)庫集群節(jié)點故障自動修復系統(tǒng)中,所述的控制模塊對每個當前遍歷出的發(fā)生故障的節(jié)點進行修復的方法步驟包括:
步驟p1、獲取該當前遍歷出的發(fā)生故障的節(jié)點的運行日志(由所述的數(shù)據(jù)集群節(jié)點日志模塊記錄);
步驟p2、基于步驟p1中獲取的當前遍歷出的發(fā)生故障的節(jié)點的運行日志,對應定位出該當前遍歷出的發(fā)生故障的節(jié)點的異常類型;
步驟p3、基于步驟p2中定位出的該當前遍歷出的發(fā)生故障的節(jié)點的異常類型,對應調(diào)用存儲模塊中預先存儲的與該定位出的異常類型相對應的修復方法,對該當前遍歷出的發(fā)生故障的數(shù)據(jù)庫集群節(jié)點進行修復。
使用時,通過當前發(fā)生故障的節(jié)點的運行日志,定位出該當前發(fā)生故障的節(jié)點的異常類型,之后調(diào)用存儲模塊中預先存儲的與該定位出的異常類型相對應的修復方法,對該當前發(fā)生故障的節(jié)點進行修復,便于實現(xiàn)。
綜上,本發(fā)明所述的方法及系統(tǒng),在判定數(shù)據(jù)庫集群狀態(tài)為故障狀態(tài)時,能夠主動修復數(shù)據(jù)庫集群故障節(jié)點,這在很大程度上減少了人工修復數(shù)據(jù)庫集群節(jié)點的操作,也在很大程度上縮減了從發(fā)現(xiàn)數(shù)據(jù)庫集群故障到數(shù)據(jù)庫集群恢復的時間間隔長度,進而在一定程度上確保了相關應用的正常運行,從而提高了數(shù)據(jù)庫的可用性。
以上實施方式僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施方式對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施方式所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施方式技術方案的范圍。