專利名稱:數(shù)據(jù)庫異地容災(zāi)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫異地同步容災(zāi)技術(shù)領(lǐng)域,更具體地,涉及一種數(shù)據(jù)庫異地容災(zāi)方法及系統(tǒng)。
背景技術(shù):
目前電信領(lǐng)域正朝著多業(yè)務(wù)、多網(wǎng)絡(luò)的融合方向發(fā)展,但在發(fā)展過程中大多數(shù)運(yùn)營商所建設(shè)的業(yè)務(wù)平臺仍采用獨(dú)立、分離的建設(shè)模式。每個(gè)業(yè)務(wù)平臺,無論其容量大小和功能多少,都需要單獨(dú)部署對應(yīng)該業(yè)務(wù)平臺的數(shù)據(jù)庫。對于重要數(shù)據(jù),則需要對數(shù)據(jù)進(jìn)行容災(zāi)備份,一般的做法是使用一套完整的存儲設(shè)備對主服務(wù)器的存儲數(shù)據(jù)進(jìn)行備份,而這些用于備份的硬件資源在正常運(yùn)營時(shí),無法產(chǎn)生任何盈利,造成了硬件資源的大量使用或閑置, 導(dǎo)致較高的運(yùn)營成本?,F(xiàn)階段各大運(yùn)營商,尤其是跨國運(yùn)營商都面臨著減低 CAPEX(CapitalExpenditure,資本支出)和 OPEX(Operating Expense,即運(yùn)營成本)的重任,CAPEX —般是指資金對固定資產(chǎn)的投入,對電信運(yùn)營商來說,有關(guān)的網(wǎng)絡(luò)設(shè)備、計(jì)算機(jī)、儀器等一次性支出的項(xiàng)目都屬于CAPEX。因此新局點(diǎn)的部署和擴(kuò)容,都會遵循降低 TCO(Total Cost of Ownership,總體成本)的原則,以最小的投入,產(chǎn)生最大的收益。在公開的專利文獻(xiàn)中,中國專利CN200910236502. 3存在以下不足僅涉及單向從源數(shù)據(jù)庫向另一個(gè)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步,沒有對從源數(shù)據(jù)庫同步過來的數(shù)據(jù),和由于業(yè)務(wù)產(chǎn)生在目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行區(qū)分。而另一中國專利CN200510086911則存在判斷步驟太多、效率不高的缺陷,因而不適合大數(shù)據(jù)量進(jìn)行同步。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種數(shù)據(jù)庫異地容災(zāi)方法及系統(tǒng),在實(shí)現(xiàn)數(shù)據(jù)庫異地容災(zāi)的同時(shí),減低主服務(wù)器的負(fù)荷。為解決上述技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)庫異地容災(zāi)方法,所述方法包括第一數(shù)據(jù)庫對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到第二數(shù)據(jù)庫;所述第二數(shù)據(jù)庫執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)庫同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)庫,則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫和所述第二數(shù)據(jù)庫互為對端數(shù)據(jù)庫;所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí), 對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于本地?cái)?shù)據(jù)庫時(shí),以單條語句為記錄單元在緩沖池中生成所述變更文件;從所述緩沖池中讀取變更文件生成所述可執(zhí)行腳本時(shí),對讀取過的變更文件進(jìn)行改名,并定期刪除或轉(zhuǎn)移備份所述緩沖池中改名后的變更文件。進(jìn)一步地,所述數(shù)據(jù)變更包括增加、減少或內(nèi)容變更。本發(fā)明還提供了一種數(shù)據(jù)庫異地容災(zāi)系統(tǒng),包括第一數(shù)據(jù)子系統(tǒng)和第二數(shù)據(jù)子系統(tǒng),所述第一數(shù)據(jù)子系統(tǒng)用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到所述第二數(shù)據(jù)子系統(tǒng);所述第二數(shù)據(jù)子系統(tǒng)用于,執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)子系統(tǒng)同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)子系統(tǒng),則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)子系統(tǒng)。此外,所述數(shù)據(jù)子系統(tǒng)進(jìn)一步包括數(shù)據(jù)庫、緩沖池和同步進(jìn)程模塊,所述數(shù)據(jù)庫用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件;所述緩沖池用于,緩沖所述數(shù)據(jù)庫生成的所述變更文件;所述同步進(jìn)程模塊用于,讀取所述緩沖池所述變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到對端數(shù)據(jù)庫。此外,所述數(shù)據(jù)庫進(jìn)一步用于,根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫,在識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí), 對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。此外,所述同步進(jìn)程模塊還用于,從所述緩沖池中讀取變更文件時(shí),對讀取過的變更文件進(jìn)行改名;所述緩沖池還用于,定期刪除或轉(zhuǎn)移備份改名后的變更文件。此外,所述同步進(jìn)程模塊進(jìn)一步用于,對讀取過的變更文件的文件名后綴進(jìn)行修改;所述緩沖池進(jìn)一步用于,根據(jù)文件名的擴(kuò)展名區(qū)分變更文件是否已改名。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有如下有益效果本發(fā)明在同步過程中,對于從源數(shù)據(jù)庫同步過來的數(shù)據(jù)和由于業(yè)務(wù)在目標(biāo)數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)變更進(jìn)行了區(qū)分,對同步失敗根據(jù)不通原因快速處理,從而實(shí)現(xiàn)雙向異地備份容災(zāi);通過引進(jìn)異地雙向數(shù)據(jù)同步,互為容災(zāi)系統(tǒng),使原本僅僅能夠用于用戶數(shù)據(jù)備份的數(shù)據(jù)庫也可以參與運(yùn)營,降低了主服務(wù)器壓力,同時(shí)也保證了數(shù)據(jù)安全性;此外,由于容災(zāi)系統(tǒng)也能夠參與運(yùn)營,使容災(zāi)設(shè)備也可以產(chǎn)生收益,降低了運(yùn)營商的CAPEX和OPEX等運(yùn)營成本。
圖1為本發(fā)明實(shí)施例的數(shù)據(jù)庫異地容災(zāi)系統(tǒng)的架構(gòu)圖;圖2為本發(fā)明實(shí)施例的數(shù)據(jù)庫異地容災(zāi)的處理流程示意圖。
具體實(shí)施例方式鑒于現(xiàn)有技術(shù)的多種缺陷,本發(fā)明提出一種數(shù)據(jù)庫異地容災(zāi)方法,采用如下技術(shù)方案第一數(shù)據(jù)庫對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到第二數(shù)據(jù)庫;所述第二數(shù)據(jù)庫執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)庫同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)庫,則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫和所述第二數(shù)據(jù)庫互為對端數(shù)據(jù)庫;所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí), 對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。進(jìn)一步地,所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于本地?cái)?shù)據(jù)庫時(shí), 以單條語句為記錄單元在緩沖池中生成所述變更文件;從所述緩沖池中讀取變更文件生成所述可執(zhí)行腳本時(shí),對讀取過的變更文件進(jìn)行改名,并定期刪除或轉(zhuǎn)移備份所述緩沖池中改名后的變更文件。進(jìn)一步地,所述數(shù)據(jù)變更包括增加、減少或內(nèi)容變更。為了便于闡述本發(fā)明,以下將結(jié)合附圖及具體實(shí)施例對本發(fā)明技術(shù)方案的實(shí)施作進(jìn)一步詳細(xì)描述。圖1為本發(fā)明實(shí)施例的數(shù)據(jù)庫異地容災(zāi)系統(tǒng)的架構(gòu)圖,包括源數(shù)據(jù)子系統(tǒng)和目標(biāo)數(shù)據(jù)子系統(tǒng),其中所述源數(shù)據(jù)子系統(tǒng)用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到目標(biāo)數(shù)據(jù)子系統(tǒng);所述目標(biāo)數(shù)據(jù)子系統(tǒng)用于,執(zhí)行可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向源數(shù)據(jù)子系統(tǒng)同步時(shí),根據(jù)可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述源數(shù)據(jù)子系統(tǒng),則對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到源數(shù)據(jù)子系統(tǒng)。其中,源數(shù)據(jù)子系統(tǒng)所在的環(huán)境A和目標(biāo)數(shù)據(jù)子系統(tǒng)所在的環(huán)境B互為容災(zāi),數(shù)據(jù)的備份是雙向備份的,兩者就本身的組成而言并無區(qū)別。如圖1所示,本實(shí)施例的數(shù)據(jù)子系統(tǒng)主要由以下幾個(gè)模塊構(gòu)成數(shù)據(jù)庫,主要用于源數(shù)據(jù)以及容災(zāi)數(shù)據(jù)的存儲及處理;緩沖池,主要用于存儲變更文件,記錄同步信息,定期刪除過期文件;同步進(jìn)程模塊,主要用于將數(shù)據(jù)庫的內(nèi)容同步到對端數(shù)據(jù)庫。進(jìn)一步地,所述數(shù)據(jù)庫用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件;所述緩沖池用于,緩沖所述數(shù)據(jù)庫生成的所述變更文件;所述同步進(jìn)程模塊用于,讀取所述緩沖池所述變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到對端數(shù)據(jù)庫。此外,所述數(shù)據(jù)庫進(jìn)一步用于,根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫,在識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí),對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。此外,所述同步進(jìn)程模塊還用于,從所述緩沖池中讀取變更文件時(shí),對讀取過的變更文件進(jìn)行改名;所述緩沖池還用于,定期刪除或轉(zhuǎn)移備份改名后的變更文件。此外,所述同步進(jìn)程模塊進(jìn)一步用于,對讀取過的變更文件的文件名后綴進(jìn)行修改;所述緩沖池進(jìn)一步用于,根據(jù)文件名的擴(kuò)展名區(qū)分變更文件是否已改名。結(jié)合上述實(shí)施例中的數(shù)據(jù)庫異地容災(zāi)系統(tǒng)的組成模塊,本發(fā)明實(shí)施例的源數(shù)據(jù)庫到目標(biāo)數(shù)據(jù)庫的同步過程主要包括以下步驟步驟一源數(shù)據(jù)庫存儲的數(shù)據(jù)發(fā)生變更,如增加、減少或內(nèi)容變更;步驟二 源數(shù)據(jù)庫判斷是否為需要同步的數(shù)據(jù),即是否是來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更,如果是,則根據(jù)該數(shù)據(jù)變更,以單條語句為記錄單元生成變更文件,存儲在本地緩沖池;其中,在初始時(shí),源數(shù)據(jù)庫存儲的數(shù)據(jù)發(fā)生變更,則直接根據(jù)數(shù)據(jù)變更生成變更文件。之后,源數(shù)據(jù)庫會根據(jù)數(shù)據(jù)變更是否帶有非同步標(biāo)識判斷是否需要同步,如果不帶非同步標(biāo)識,則說明是來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更,需要同步,則生成變更文件;如果帶有非同步標(biāo)識,則說明是來源于目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)變更,則不生成變更文件。步驟三本地同步進(jìn)程模塊讀取緩沖池中的變更文件,根據(jù)變更文件中的記錄單元,拼接語句,生成可以在目標(biāo)數(shù)據(jù)庫執(zhí)行的可執(zhí)行腳本,并加上非同步標(biāo)識,同步到目標(biāo)數(shù)據(jù)庫;步驟四同步進(jìn)程模塊記錄讀取過的變更文件,并將該變更文件改名,防止重復(fù)讀取;步驟五目標(biāo)數(shù)據(jù)庫捕捉帶有非同步標(biāo)識的數(shù)據(jù)變更,對于這些變更不在緩沖池生成變更文件,則僅執(zhí)行可執(zhí)行腳本對存儲的數(shù)據(jù)進(jìn)行變更,不再生成變更文件,返回到源數(shù)據(jù)庫;步驟六緩沖池將已經(jīng)改名的文件定期刪除或轉(zhuǎn)移備份。圖2示出了本發(fā)明實(shí)施例的數(shù)據(jù)庫異地容災(zāi)方法的完整流程圖,如圖2所示,該流程具體包括如下步驟步驟1,業(yè)務(wù)操作引起源環(huán)境A數(shù)據(jù)庫中的數(shù)據(jù)記錄變更;步驟2,該數(shù)據(jù)記錄所在表屬于需要同步的表,該表發(fā)生增量變化(如增加、減少或內(nèi)容變更),需要及時(shí)同步到對端環(huán)境;步驟3,判斷該增量變化是否為帶有非同步標(biāo)識的數(shù)據(jù)變更導(dǎo)致(可根據(jù)造成該變更的腳本是否帶非同步標(biāo)識進(jìn)行判斷),如果是,則不在緩沖池生成變更文件;步驟4,如果該增量變化是由不帶有非同步標(biāo)識的數(shù)據(jù)變更導(dǎo)致,則在緩沖池生成變更文件;步驟5,同步進(jìn)程模塊讀取變更文件,開始進(jìn)行同步;同步進(jìn)程模塊在讀取變更文件時(shí),從上一次同步處開始讀??;步驟6,同步進(jìn)程模塊將讀取并同步過的文件改名;步驟7,緩沖池定期按指定配置,刪除已改名的文件,也即已經(jīng)被同步過的文件;
具體地,根據(jù)文件名的擴(kuò)展名即可區(qū)分變更文件是否已改名,例如由于增量變化生成的變更文件,在新建的時(shí)候是以.r為文件名后綴,而已經(jīng)讀取過的則被同步進(jìn)程模塊改為以.ο為文件名后綴。需要說明的是,上述步驟6與步驟7均在步驟5之后執(zhí)行,但該步驟7與步驟6并無一定先后順序關(guān)系。步驟8,同步進(jìn)程模塊根據(jù)文件內(nèi)容的變更,拼接可執(zhí)行腳本,并加上非同步標(biāo)識后,同步到對端數(shù)據(jù)庫執(zhí)行,在對端數(shù)據(jù)庫對應(yīng)表進(jìn)行變更操作;步驟9a,如果在目標(biāo)數(shù)據(jù)庫執(zhí)行過程中發(fā)生主鍵沖突錯(cuò)誤,則源數(shù)據(jù)庫根據(jù)收到的錯(cuò)誤響應(yīng)中的錯(cuò)誤原因,由源環(huán)境A中的同步模塊拋棄該沖突記錄,本次操作結(jié)束;步驟%,源數(shù)據(jù)庫中有張錯(cuò)誤記錄表,如果在目標(biāo)數(shù)據(jù)庫執(zhí)行過程發(fā)生除主鍵沖突外的錯(cuò)誤,則源數(shù)據(jù)庫將該類錯(cuò)誤的執(zhí)行語句記錄到該表中;步驟9c,如果可執(zhí)行腳本在目標(biāo)數(shù)據(jù)庫順利執(zhí)行,則引起相關(guān)數(shù)據(jù)記錄發(fā)生變更, 目標(biāo)數(shù)據(jù)庫捕捉到該記錄變更是由于帶非同步標(biāo)識的操作導(dǎo)致,則不在本地緩沖池生成變更文件。綜上所述,本發(fā)明提供的數(shù)據(jù)庫異地容災(zāi)方法及系統(tǒng)具有如下特點(diǎn)1)有環(huán)境A,環(huán)境B兩套數(shù)據(jù)環(huán)境參與運(yùn)營;2)業(yè)務(wù)數(shù)據(jù)分別進(jìn)入環(huán)境A,B中的數(shù)據(jù)庫;3)需要同步的數(shù)據(jù)在各自環(huán)境中的緩沖池生成變更文件;4)各自環(huán)境中的同步進(jìn)程模塊讀取本地緩沖池中的變更文件,帶上非同步標(biāo)識后,分別到對端環(huán)境中數(shù)據(jù)庫執(zhí)行,以保證兩個(gè)環(huán)境數(shù)據(jù)一致;5)環(huán)境A,B互為備份,當(dāng)任一環(huán)境被破壞時(shí),另一套環(huán)境能夠保證全部數(shù)據(jù)的完整性,并迅速承接全部業(yè)務(wù)。以上僅為本發(fā)明的優(yōu)選實(shí)施案例而已,并不用于限制本發(fā)明,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
權(quán)利要求
1.一種數(shù)據(jù)庫異地容災(zāi)方法,其特征在于,所述方法包括第一數(shù)據(jù)庫對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到第二數(shù)據(jù)庫;所述第二數(shù)據(jù)庫執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)庫同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)庫, 則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)庫。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)據(jù)庫和所述第二數(shù)據(jù)庫互為對端數(shù)據(jù)庫;所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫。
3.如權(quán)利要求2所述的方法,其特征在于,所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí),對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。
4.如權(quán)利要求2或3所述的方法,其特征在于, 所述第一數(shù)據(jù)庫或第二數(shù)據(jù)庫識別出數(shù)據(jù)變更來源于本地?cái)?shù)據(jù)庫時(shí),以單條語句為記錄單元在緩沖池中生成所述變更文件;從所述緩沖池中讀取變更文件生成所述可執(zhí)行腳本時(shí),對讀取過的變更文件進(jìn)行改名,并定期刪除或轉(zhuǎn)移備份所述緩沖池中改名后的變更文件。
5.如權(quán)利要求1、2或3所述的方法,其特征在于,所述數(shù)據(jù)變更包括增加、減少或內(nèi)容變更。
6.一種數(shù)據(jù)庫異地容災(zāi)系統(tǒng),其特征在于,包括第一數(shù)據(jù)子系統(tǒng)和第二數(shù)據(jù)子系統(tǒng), 所述第一數(shù)據(jù)子系統(tǒng)用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到所述第二數(shù)據(jù)子系統(tǒng);所述第二數(shù)據(jù)子系統(tǒng)用于,執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)子系統(tǒng)同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)子系統(tǒng),則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)子系統(tǒng)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述數(shù)據(jù)子系統(tǒng)進(jìn)一步包括數(shù)據(jù)庫、緩沖池和同步進(jìn)程模塊,所述數(shù)據(jù)庫用于,對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件;所述緩沖池用于,緩沖所述數(shù)據(jù)庫生成的所述變更文件;所述同步進(jìn)程模塊用于,讀取所述緩沖池所述變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到對端數(shù)據(jù)庫。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫進(jìn)一步用于,根據(jù)執(zhí)行的可執(zhí)行腳本是否帶有非同步標(biāo)識,識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫還是本地?cái)?shù)據(jù)庫,在識別出數(shù)據(jù)變更來源于對端數(shù)據(jù)庫時(shí),對執(zhí)行可執(zhí)行腳本引起的數(shù)據(jù)變更不生成變更文件,不再同步到對端數(shù)據(jù)庫。
9.如權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述同步進(jìn)程模塊還用于,從所述緩沖池中讀取變更文件時(shí),對讀取過的變更文件進(jìn)行改名;所述緩沖池還用于,定期刪除或轉(zhuǎn)移備份改名后的變更文件。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述同步進(jìn)程模塊進(jìn)一步用于,對讀取過的變更文件的文件名后綴進(jìn)行修改; 所述緩沖池進(jìn)一步用于,根據(jù)文件名的擴(kuò)展名區(qū)分變更文件是否已改名。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)庫異地容災(zāi)方法及系統(tǒng),第一數(shù)據(jù)庫對來源于本地?cái)?shù)據(jù)庫的數(shù)據(jù)變更生成變更文件,根據(jù)所述變更文件生成可執(zhí)行腳本,加上非同步標(biāo)識后,同步到第二數(shù)據(jù)庫;所述第二數(shù)據(jù)庫執(zhí)行所述可執(zhí)行腳本對本地?cái)?shù)據(jù)進(jìn)行變更,在向所述第一數(shù)據(jù)庫同步時(shí),根據(jù)所述可執(zhí)行腳本帶有的所述非同步標(biāo)識識別出數(shù)據(jù)變更來源于所述第一數(shù)據(jù)庫,則對執(zhí)行所述可執(zhí)行腳本引起的數(shù)據(jù)變更不再同步到所述第一數(shù)據(jù)庫。本發(fā)明數(shù)據(jù)變更的來源進(jìn)行了區(qū)分,在實(shí)現(xiàn)雙向異地備份容災(zāi)的同時(shí),減低主服務(wù)器的負(fù)荷。
文檔編號G06F17/30GK102402562SQ20101028907
公開日2012年4月4日 申請日期2010年9月14日 優(yōu)先權(quán)日2010年9月14日
發(fā)明者孫雷, 張玲東, 張超, 施健, 王巍, 王慧, 趙慶春 申請人:中興通訊股份有限公司