1.一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:包括如下步驟:
(一)按照系統(tǒng)中的節(jié)點類型,把節(jié)點分為應(yīng)用節(jié)點及數(shù)據(jù)庫節(jié)點:
把運行業(yè)務(wù)應(yīng)用的節(jié)點稱為應(yīng)用節(jié)點,把只運行數(shù)據(jù)庫服務(wù)的節(jié)點稱為數(shù)據(jù)庫節(jié)點,如果某節(jié)點上既運行業(yè)務(wù)應(yīng)用,又運行數(shù)據(jù)庫服務(wù)我們?nèi)苑Q其為應(yīng)用節(jié)點;并且在系統(tǒng)中把應(yīng)用節(jié)點和數(shù)據(jù)庫節(jié)點的節(jié)點名和ip地址存儲到某配置文檔中,并且保證系統(tǒng)中此文檔內(nèi)容的一致性;
(二)監(jiān)測數(shù)據(jù)庫心跳及維護本地信息:
(1)根據(jù)配置文檔中的信息,判斷當前節(jié)點是否應(yīng)用節(jié)點;
(2)如果是應(yīng)用節(jié)點,通過配置文檔,找到某數(shù)據(jù)庫節(jié)點,通過ip地址的方式,使用數(shù)據(jù)庫接口對數(shù)據(jù)庫進行訪問;
(3)如果能連接上此節(jié)點,在本地共享存儲中數(shù)據(jù)庫節(jié)點信息處增加此節(jié)點的信息,并給此節(jié)點置上備用庫狀態(tài),并在此節(jié)點相應(yīng)位置寫入當前時間;
(4)如果連接不上此節(jié)點,在本地共享存儲中數(shù)據(jù)庫節(jié)點信息處增加此節(jié)點的信息,并給此節(jié)點置上退出狀態(tài),并在此節(jié)點相應(yīng)位置寫入當前時間;
(5)對配置文檔中的所有的數(shù)據(jù)庫節(jié)點進行(2)-(4)的步驟,直到文檔中所有節(jié)點全部被遍歷;
(6)心跳管理服務(wù)每隔1秒鐘,對本地共享存儲中的數(shù)據(jù)庫節(jié)點進行(2)的步驟,然后更新本地共享存儲中此數(shù)據(jù)庫節(jié)點的狀態(tài)及時間;
(三)監(jiān)測系統(tǒng)應(yīng)用心跳及維護本地信息:
(1)根據(jù)配置文檔中的信息,判斷當前節(jié)點是否應(yīng)用節(jié)點;
(2)如果是應(yīng)用節(jié)點,通過配置文檔,找到其他應(yīng)用節(jié)點,通過UDP組播給其他所有應(yīng)用節(jié)點發(fā)送本節(jié)點各應(yīng)用狀態(tài);
(3)其他節(jié)點收到此心跳后,把此節(jié)點的各應(yīng)用狀態(tài)及當前時間存入本地共享存儲相應(yīng)位置;
(4)心跳管理服務(wù)每隔1秒鐘,對本地共享存儲中的所有應(yīng)用節(jié)點進行(2)的步驟;
(四)心跳管理服務(wù)運算所有節(jié)點狀態(tài)及往其他節(jié)點同步:
(1)心跳管理程序?qū)Ρ镜毓蚕泶鎯χ兴袛?shù)據(jù)庫節(jié)點及應(yīng)用節(jié)點進行時間判斷,把共享存儲中的時間與當前時間做對比,如果超過預(yù)設(shè)值的時間,給所有節(jié)點置上不可用狀態(tài),即不參與以下步驟中的節(jié)點運算;
(2)心跳管理程序根據(jù)本地共享內(nèi)存中所有數(shù)據(jù)庫狀態(tài),通過優(yōu)先級及預(yù)配置算法算出所有數(shù)據(jù)庫主用庫,備用庫,并存儲到本地共享存儲中相應(yīng)位置;
(3)心跳管理程序根據(jù)本地共享內(nèi)存中所有應(yīng)用節(jié)點中應(yīng)用狀態(tài)狀態(tài),通過優(yōu)先級及預(yù)配置算法算出給每個應(yīng)用算出主機、備用等狀態(tài),并存儲到本地共享存儲中相應(yīng)位置;
(五)心跳管理程序通過統(tǒng)一的報文格式,把數(shù)據(jù)庫主用、備用等信息,各應(yīng)用主機狀態(tài)信息,通過UDP方式往所有的應(yīng)用節(jié)點同步。
2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述數(shù)據(jù)庫節(jié)點狀態(tài),包括啟動、主用庫、備用庫、強制主用庫、強制備用庫、網(wǎng)絡(luò)異常、單網(wǎng)故障、登錄故障、退出九種。
3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述應(yīng)用節(jié)點狀態(tài),包括離線、主機、備機、強制主機、強制備機、網(wǎng)絡(luò)異常、進程異常、啟動、故障九種。
4.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述數(shù)據(jù)庫,包括ORACLE、MYSQL、PostgreSQL。
5.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述應(yīng)用節(jié)點狀態(tài)和數(shù)據(jù)庫節(jié)點狀態(tài),由應(yīng)用節(jié)點上的同一服務(wù)進行本地存儲。
6.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述應(yīng)用節(jié)點狀態(tài)和數(shù)據(jù)庫節(jié)點狀態(tài),由應(yīng)用節(jié)點上的同一服務(wù)進行網(wǎng)絡(luò)發(fā)送、傳輸及接收。
7.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫及系統(tǒng)應(yīng)用心跳統(tǒng)一管理的實現(xiàn)方法,其特征在于:所述應(yīng)用節(jié)點狀態(tài)和數(shù)據(jù)庫節(jié)點狀態(tài)的存儲結(jié)構(gòu)及網(wǎng)絡(luò)傳輸結(jié)構(gòu)保持一致。