本發(fā)明涉及數(shù)據(jù)庫技術領域,更為具體來說,是一種數(shù)據(jù)庫切換方法及系統(tǒng)。
背景技術:
數(shù)據(jù)庫災備,全稱數(shù)據(jù)庫災難備份,是指為防止出現(xiàn)操作失誤或系統(tǒng)故障導致數(shù)據(jù)丟失,而將全系統(tǒng)或部分數(shù)據(jù)集合從應用主機的硬盤或陣列復制到其他存儲介質(zhì)的過程,傳統(tǒng)的數(shù)據(jù)庫災難的解決方案主要有如下的兩種。
(1)只有一個應用數(shù)據(jù)庫,只有出現(xiàn)數(shù)據(jù)庫癱瘓等問題時才人工地解決問題。這種方式雖然簡單易行,但是,如果發(fā)生突發(fā)性故障,整個系統(tǒng)很難及時響應和修復,應用服務器將在很長時間內(nèi)無法正常工作,宕機時間非常長。
(2)主從備份,通過其他的設備對主機進行數(shù)據(jù)備份。比如,這種方式類似于通過應急庫服務器代替生產(chǎn)庫服務器,在生產(chǎn)庫服務器發(fā)生故障時,采用相關手段將生產(chǎn)庫服務器的內(nèi)容導入應急庫服務器中,但是,在這種備份方式下,主機和從機無法實現(xiàn)自動切換,仍需要人工手動操作,應用服務器將在很長時間內(nèi)無法正常工作,應用服務器宕機時間非常長,而且,該方法必須依賴第三方軟件,無法獨立實現(xiàn),另外,該方法常出現(xiàn)主機和從機數(shù)據(jù)不一致的問題。
因此,在現(xiàn)有技術無法從根本上解決服務器崩潰問題的基礎上,如何解決現(xiàn)有技術存在的應用服務器的宕機時間長、修復過程過分地依靠人工操作等數(shù)據(jù)庫問題,成為了本領域技術人員亟待解決的技術問題和研究的重點。
技術實現(xiàn)要素:
為解決現(xiàn)有數(shù)據(jù)庫故障時產(chǎn)生的宕機時間過長、需要人工手動解決等問題,本發(fā)明提供了一種數(shù)據(jù)庫切換方法及系統(tǒng),從完全相同、實時同步的雙數(shù)據(jù)庫相互切換的角度解決上述問題,極大地減少了宕機時間,提高數(shù)據(jù)庫切換效率,使應用服務器快速、自動地恢復工作。
為達到上述的技術目的,本發(fā)明公開了一種數(shù)據(jù)庫切換方法,該方法包括如下步驟,
步驟1,搭建具有雙數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng);
步驟2,分析得出數(shù)據(jù)庫A正在工作;
步驟3,監(jiān)控數(shù)據(jù)庫A,判斷數(shù)據(jù)庫A是否正常:若正常,則繼續(xù)監(jiān)控數(shù)據(jù)庫A;若異常,則執(zhí)行步驟4;
步驟4,將數(shù)據(jù)庫A切換至數(shù)據(jù)庫B。
本發(fā)明創(chuàng)新地采用了具有雙數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng),如果其中一個發(fā)生異?;蚬收希瑒t可自動切換至另一個正常工作的數(shù)據(jù)庫,該方法切換速度快、切換效率高、減少應用服務器的宕機時間。
進一步地,所述步驟4中,數(shù)據(jù)庫B與數(shù)據(jù)庫A完全相同且二者數(shù)據(jù)實時同步更新。
由于本發(fā)明采用的兩個數(shù)據(jù)庫實時數(shù)據(jù)完全相同,因此可在其中一個數(shù)據(jù)庫故障時無障礙地切換至另一個數(shù)據(jù)庫,解決了主從備份存在的數(shù)據(jù)不一致等問題。
進一步地,步驟2中,通過配置文件file-A分析得出數(shù)據(jù)庫A正在工作,配置文件file-A指向數(shù)據(jù)庫A,此時應用服務器通過配置文件file-A建立與數(shù)據(jù)庫A的通信。
本發(fā)明通過配置文件引導應用服務器與正常的數(shù)據(jù)庫連接,這種方式具有響應速度快、容易實現(xiàn)等優(yōu)點,進一步地減少應用服務器的宕機時間。
進一步地,步驟4中,數(shù)據(jù)庫A切換至數(shù)據(jù)庫B過程中,向運營人員發(fā)出告警短信和/或郵件,應用服務器通過配置文件file-B建立與數(shù)據(jù)庫B的通信,配置文件file-B指向數(shù)據(jù)庫B,然后重啟應用服務器和數(shù)據(jù)庫A。
通過配置文件引導,當檢測到數(shù)據(jù)庫發(fā)生故障時,雖然本發(fā)明不需要人工處理,但可在第一時間向運營人員發(fā)送短信或郵件通知,使運營人員及時獲得當前應用服務器的工作狀態(tài)。
進一步地,數(shù)據(jù)庫A切換至數(shù)據(jù)庫B的過程中,向運營人員發(fā)出告警短信和/或郵件,數(shù)據(jù)庫B獲取數(shù)據(jù)庫A的虛擬IP地址,使配置文件file-A指向數(shù)據(jù)庫B,應用服務器通過配置文件file-A建立與數(shù)據(jù)庫B的通信。
本發(fā)明還提供了另一種引導應用服務器與數(shù)據(jù)庫通信的方式:即通過虛擬IP地址的方法,該方法不需要更換配置文件,只需要使正常的數(shù)據(jù)庫獲取當前數(shù)據(jù)庫的虛擬IP地址,則可通過原配置文件使應用服務器與數(shù)據(jù)庫連接。
進一步地,該方法包括如下步驟,
步驟5,判斷數(shù)據(jù)庫B是否正常:若正常,則繼續(xù)監(jiān)控數(shù)據(jù)庫B;若異常,向運營人員發(fā)出告警短信和/或郵件,則重啟數(shù)據(jù)庫A和數(shù)據(jù)庫B,然后重啟應用服務器。
在極特殊的情況下,如果兩個數(shù)據(jù)庫均發(fā)生了異常,則自動地將兩個數(shù)據(jù)庫和應用服務器重啟,通過該方式,使得本發(fā)明的切換方法更加完善,解決的問題更加全面。
進一步地,步驟3中,數(shù)據(jù)庫正常需同時滿足如下條件:數(shù)據(jù)庫能被正常登陸、正常連接、正常查詢、正常修改。
本發(fā)明判斷數(shù)據(jù)庫正常的條件包括上述條件,但并不限于上述條件,在本發(fā)明的技術啟示下,本領域技術人員可根據(jù)實際需要合理地選擇或者更改判斷數(shù)據(jù)庫正常與否的條件。
進一步地,步驟3中,若數(shù)據(jù)庫A正常,則兩分鐘后繼續(xù)監(jiān)控數(shù)據(jù)庫A;所述步驟5中,若數(shù)據(jù)庫B正常,則兩分鐘后繼續(xù)監(jiān)控數(shù)據(jù)庫B。
本發(fā)明的監(jiān)控頻率為兩分鐘,在第一次監(jiān)控發(fā)現(xiàn)當前正在工作的數(shù)據(jù)庫正常后,則在兩分鐘后再檢測一次。該頻率的設定兼顧了監(jiān)控工作占用的資源和監(jiān)控效力。
進一步地,通過腳本操作將數(shù)據(jù)庫A切換至數(shù)據(jù)庫B。
本發(fā)明通過腳本操作方式實現(xiàn)切換,這種方式簡單易行、容易實施、響應速度快,更進一步減少宕機時間、降低資源占用。
進一步地,所述數(shù)據(jù)庫系統(tǒng)為冰箱的數(shù)據(jù)庫災備系統(tǒng)。
本發(fā)明可應用于冰箱,保障了冰箱后臺數(shù)據(jù)庫系統(tǒng)穩(wěn)定性,徹底解決冰箱數(shù)據(jù)庫故障或崩潰問題,使冰箱更穩(wěn)定、更可靠地工作。
本發(fā)明的另一個發(fā)明目的在于提供一種數(shù)據(jù)庫切換系統(tǒng),該系統(tǒng)包括數(shù)據(jù)庫A、數(shù)據(jù)庫B、應用服務器及控制服務器,所述數(shù)據(jù)庫A與數(shù)據(jù)庫B為相同的數(shù)據(jù)庫,在控制服務器作用下,應用服務器與數(shù)據(jù)庫A或數(shù)據(jù)庫B連接。
在完全相同、數(shù)據(jù)同步更新的數(shù)據(jù)庫A和數(shù)據(jù)庫B的支持下,本發(fā)明提供的數(shù)據(jù)庫切換系統(tǒng)能夠自動實現(xiàn)切換工作,極大地減少應用服務器的宕機時間,而且,該系統(tǒng)性能可靠、穩(wěn)定性好,無需借助第三方軟件即可實施。
進一步地,應用服務器通過配置文件file-A與數(shù)據(jù)庫A連接或通過配置文件file-B與數(shù)據(jù)庫B連接,配置文件file-A和配置文件file-B均存儲于應用服務器內(nèi)。
本發(fā)明借助于應用服務器內(nèi)的配置文件引導應用服務器連接可正常工作的數(shù)據(jù)庫,無需借助第三方軟件即可實施。
進一步地,控制服務器為業(yè)務系統(tǒng)服務器。
本發(fā)明可通過業(yè)務系統(tǒng)服務器直接控制上述檢測、監(jiān)控和切換工作,無需借助第三方軟件即可實施,簡單易行。
本發(fā)明的有益效果為:本發(fā)明可自動檢測數(shù)據(jù)庫異常,在數(shù)據(jù)庫發(fā)生異常時能夠即時智能切換,極大地減少了應用服務器的宕機時間,可實現(xiàn)在五分鐘內(nèi)使應用服務器恢復正常工作;而且,發(fā)生異常情況時,本發(fā)明能夠自動切換處理、不需要人工處理,節(jié)省了人工的工作量;另外,在異常發(fā)生的第一時間通過短信或郵件的形式通知和提醒運營人員。
附圖說明
圖1為本發(fā)明數(shù)據(jù)庫切換方法流程示意圖。
具體實施方式
下面結(jié)合說明書附圖對本發(fā)明數(shù)據(jù)庫切換方法和切換系統(tǒng)進行詳細的解釋和說明。
本發(fā)明公開一種數(shù)據(jù)庫切換方法,該方法首先搭建一個具有雙master的數(shù)據(jù)庫系統(tǒng),該數(shù)據(jù)庫內(nèi)具有兩個實時同步的數(shù)據(jù)庫A和數(shù)據(jù)庫B,在應用服務器下面放置兩個配置文件file-A、file-B,file-A連接指向A數(shù)據(jù)庫,file-B連接指向B數(shù)據(jù)庫,應用服務器默認連接使用file-A。本發(fā)明主要用于解決數(shù)據(jù)庫異常導致宕機時間長的問題。
實施例一:
具體來說,本發(fā)明的數(shù)據(jù)庫切換方法包括如下步驟,
步驟1,搭建具有雙數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng),本實施例中雙數(shù)據(jù)庫包括數(shù)據(jù)庫A與數(shù)據(jù)庫B;本發(fā)明可廣泛地應用于各種智能化的冰箱上,因而數(shù)據(jù)庫系統(tǒng)可為冰箱的數(shù)據(jù)庫災備系統(tǒng)。
步驟2,具有監(jiān)控功能的腳本啟動,本實施例中,分析得出數(shù)據(jù)庫A正在工作,通過配置文件file-A分析得出數(shù)據(jù)庫A正在工作,配置文件file-A指向數(shù)據(jù)庫A,此時應用服務器通過配置文件file-A建立與數(shù)據(jù)庫A的通信。當然,正在工作的數(shù)據(jù)庫也可能是數(shù)據(jù)庫B,本發(fā)明該步驟僅是為了說明雙數(shù)據(jù)庫中有一個數(shù)據(jù)庫正在工作,如圖1所示,如果判斷當前應用服務器連接的配置文件為file-A,則數(shù)據(jù)庫A正在工作,如果判斷當前應用服務器連接的配置文件為file-B,則數(shù)據(jù)庫B正在工作。
步驟3,監(jiān)控數(shù)據(jù)庫A,判斷數(shù)據(jù)庫A是否正常:若數(shù)據(jù)庫A正常,則兩分鐘后繼續(xù)監(jiān)控數(shù)據(jù)庫A;若異常,則執(zhí)行步驟4。
當然,本步驟中,如果數(shù)據(jù)庫B正在工作,則判斷數(shù)據(jù)庫B是否正常。
步驟4,通過腳本操作將數(shù)據(jù)庫A切換至數(shù)據(jù)庫B,本發(fā)明的數(shù)據(jù)庫B與數(shù)據(jù)庫A完全相同且二者數(shù)據(jù)實時同步更新。數(shù)據(jù)庫A切換至數(shù)據(jù)庫B過程中,向運營人員發(fā)出告警短信和/或郵件,應用服務器通過配置文件file-B建立與數(shù)據(jù)庫B的通信,配置文件file-B指向數(shù)據(jù)庫B,然后重啟應用服務器,使應用服務器連接到數(shù)據(jù)庫B上,再重啟數(shù)據(jù)庫A,使數(shù)據(jù)庫A恢復正常,用于在數(shù)據(jù)庫B異常時的災備。
當然,如圖1右側(cè)流程所示,在步驟3中如果數(shù)據(jù)庫B異常,則腳本操作將數(shù)據(jù)庫B切換至數(shù)據(jù)庫A,應用服務器通過配置文件file-A建立與數(shù)據(jù)庫A的通信,配置文件file-A指向數(shù)據(jù)庫A,然后重啟數(shù)據(jù)庫B,使數(shù)據(jù)庫B恢復正常。
步驟5,將數(shù)據(jù)庫A切換至數(shù)據(jù)庫B后,判斷數(shù)據(jù)庫B是否正常:若數(shù)據(jù)庫B正常,則兩分鐘后繼續(xù)監(jiān)控數(shù)據(jù)庫B;若異常,向運營人員發(fā)出告警短信和/或郵件,則重啟數(shù)據(jù)庫A和數(shù)據(jù)庫B,然后重啟應用服務器。
需要說明的是,本發(fā)明可通過如下方式判斷數(shù)據(jù)庫A或B是否正常。數(shù)據(jù)庫正常需同時滿足如下條件:數(shù)據(jù)庫能被正常登陸、正常連接、正常查詢、正常修改。另外,本發(fā)明數(shù)據(jù)庫監(jiān)控頻率為兩分鐘執(zhí)行一次。
實施例二:
實施例二的數(shù)據(jù)庫切換方法與實施例一基本相同,其區(qū)別在于:步驟4中,在數(shù)據(jù)庫A發(fā)生故障的情況下,應用服務器與數(shù)據(jù)庫B建立通信的方式不同。本實施例中,數(shù)據(jù)庫A切換至數(shù)據(jù)庫B的過程中,向運營人員發(fā)出告警短信和/或郵件,數(shù)據(jù)庫B獲取數(shù)據(jù)庫A的虛擬IP地址,使配置文件file-A指向數(shù)據(jù)庫B,應用服務器通過配置文件file-A建立與數(shù)據(jù)庫B的通信。
本發(fā)明還公開了一種數(shù)據(jù)庫切換系統(tǒng),該系統(tǒng)包括數(shù)據(jù)庫A、數(shù)據(jù)庫B、應用服務器及控制服務器,所述數(shù)據(jù)庫A與數(shù)據(jù)庫B為相同的數(shù)據(jù)庫,在控制服務器作用下,通過控制服務器自動發(fā)出監(jiān)控、切換等命令,應用服務器與數(shù)據(jù)庫A或數(shù)據(jù)庫B連接。
具體來說,應用服務器通過配置文件file-A與數(shù)據(jù)庫A連接,或者,應用服務器通過配置文件file-B與數(shù)據(jù)庫B連接,配置文件file-A和配置文件file-B均存儲于應用服務器內(nèi)。本發(fā)明中,控制服務器為業(yè)務系統(tǒng)服務器。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明實質(zhì)內(nèi)容上所作的任何修改、等同替換和簡單改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。