數(shù)據(jù)庫系統(tǒng)以及數(shù)據(jù)同步方法
【專利摘要】本發(fā)明提供了一種數(shù)據(jù)庫系統(tǒng)以及數(shù)據(jù)同步方法,該數(shù)據(jù)同步方法包括:將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個一級內(nèi)存數(shù)據(jù)庫中;將每個一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的二級內(nèi)存數(shù)據(jù)庫中,并通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。通過本發(fā)明,采用將一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到二級內(nèi)存數(shù)據(jù)庫中,這樣的話,在一級內(nèi)存數(shù)據(jù)庫宕機(jī)時,可以切換到二級內(nèi)存數(shù)據(jù)庫上,從而解決了當(dāng)內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用需切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的問題,進(jìn)而達(dá)到了提高系統(tǒng)的數(shù)據(jù)訪問效率的效果。
【專利說明】數(shù)據(jù)庫系統(tǒng)以及數(shù)據(jù)同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及內(nèi)存數(shù)據(jù)存儲【技術(shù)領(lǐng)域】,具體而言,涉及一種數(shù)據(jù)庫系統(tǒng)以及數(shù)據(jù)同步方法。
【背景技術(shù)】
[0002]傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)是關(guān)系型數(shù)據(jù)庫,開發(fā)這種數(shù)據(jù)庫的目的,是處理永久、穩(wěn)定的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫強調(diào)維護(hù)數(shù)據(jù)的完整性、一致性,但很難顧及有關(guān)數(shù)據(jù)及其處理的定時限制,不能滿足工業(yè)生產(chǎn)管理實時應(yīng)用的需要,因為實時事務(wù)要求系統(tǒng)能較準(zhǔn)確地預(yù)報事務(wù)的運行時間。
[0003]對磁盤數(shù)據(jù)庫而言,由于磁盤存取、內(nèi)外存的數(shù)據(jù)傳遞、緩沖區(qū)管理、排隊等待及鎖的延遲等使得事務(wù)實際平均執(zhí)行時間與估算的最壞情況執(zhí)行時間相差很大,如果將整個數(shù)據(jù)庫或其主要的“工作”部分放入內(nèi)存,使每個事務(wù)在執(zhí)行過程中沒有1/0,則為系統(tǒng)較準(zhǔn)確估算和安排事務(wù)的運行時間,使之具有較好的動態(tài)可預(yù)報性提供了有力的支持,同時也為實現(xiàn)事務(wù)的定時限制打下了基礎(chǔ)。這就是內(nèi)存數(shù)據(jù)庫出現(xiàn)的主要原因。
[0004]內(nèi)存數(shù)據(jù)庫所處理的數(shù)據(jù)通常是“短暫”的,即有一定的有效時間,過時則有新的數(shù)據(jù)產(chǎn)生,而當(dāng)前的決策推導(dǎo)變成無效。所以,實際應(yīng)用中采用內(nèi)存數(shù)據(jù)庫來處理實時性強的業(yè)務(wù)邏輯處理數(shù)據(jù)。而傳統(tǒng)數(shù)據(jù)庫旨在處理永久、穩(wěn)定的數(shù)據(jù),其性能目標(biāo)是高的系統(tǒng)吞吐量和低的代價,處理數(shù)據(jù)的實時性就要考慮的相對少一些。實際應(yīng)用中利用傳統(tǒng)數(shù)據(jù)庫這一特性存放相對實時性要求不高的數(shù)據(jù)。
[0005]在實際應(yīng)用中這兩種數(shù)據(jù)庫常常結(jié)合使用,而不是以內(nèi)存數(shù)據(jù)庫替代傳統(tǒng)數(shù)據(jù)庫,當(dāng)內(nèi)存數(shù)據(jù)庫發(fā)生故障不提供服務(wù)時,應(yīng)用會切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,其訪問效率較之內(nèi)存數(shù)據(jù)庫會有明顯的下降,并且內(nèi)存數(shù)據(jù)庫的恢復(fù),由于需要同步全量數(shù)據(jù),會有一定時間的消耗,因此對現(xiàn)網(wǎng)的服務(wù)會有比較明顯的影響。
[0006]針對相關(guān)技術(shù)中當(dāng)內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種數(shù)據(jù)庫系統(tǒng)以及基于該數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步方法,以至少解決上述內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的問題。
[0008]根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)庫系統(tǒng),該數(shù)據(jù)庫系統(tǒng)包括:一個關(guān)系型數(shù)據(jù)庫;一個或多個一級內(nèi)存數(shù)據(jù)庫,與關(guān)系型數(shù)據(jù)庫相連,一級內(nèi)存數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫之間通過數(shù)據(jù)同步進(jìn)行數(shù)據(jù)的分發(fā)和更新;一個或多個二級內(nèi)存數(shù)據(jù)庫,與一級內(nèi)存數(shù)據(jù)庫相連,二級內(nèi)存數(shù)據(jù)庫為一級內(nèi)存數(shù)據(jù)庫的備份數(shù)據(jù)庫。
[0009]優(yōu)選地,一級內(nèi)存數(shù)據(jù)庫為多個,每個一級內(nèi)存數(shù)據(jù)庫中保存有關(guān)系型數(shù)據(jù)庫按預(yù)定策略分發(fā)至該一級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)。
[0010]優(yōu)選地,二級內(nèi)存數(shù)據(jù)庫為多個,二級內(nèi)存數(shù)據(jù)庫與一級內(nèi)存數(shù)據(jù)庫存在--對應(yīng)的關(guān)系,并且每個二級內(nèi)存數(shù)據(jù)庫中所保存的數(shù)據(jù)為與其對應(yīng)的一級內(nèi)存數(shù)據(jù)庫的全量備份數(shù)據(jù)。
[0011]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)同步方法,包括:將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個一級內(nèi)存數(shù)據(jù)庫中;將每個一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的二級內(nèi)存數(shù)據(jù)庫中,并通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
[0012]優(yōu)選地,將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個一級內(nèi)存數(shù)據(jù)庫中之前,還包括:在關(guān)系型數(shù)據(jù)庫中創(chuàng)建一級同步注冊表,并在一級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、數(shù)據(jù)分發(fā)策略、目的內(nèi)存數(shù)據(jù)庫信息。
[0013]優(yōu)選地,將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個一級內(nèi)存數(shù)據(jù)庫中,包括:當(dāng)關(guān)系型數(shù)據(jù)庫中有數(shù)據(jù)變更操作時,關(guān)系型數(shù)據(jù)庫中的同步進(jìn)程實時監(jiān)控并檢測到數(shù)據(jù)變更操作,按照一級同步注冊表中登記的數(shù)據(jù)分發(fā)策略將數(shù)據(jù)變更操作同步到對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中,并在該一級內(nèi)存數(shù)據(jù)庫上生成重做日志redolog。
[0014]優(yōu)選地,將每個一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的二級內(nèi)存數(shù)據(jù)庫中之前,還包括:在一級內(nèi)存數(shù)據(jù)庫上創(chuàng)建二級同步注冊表,并在二級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、目的內(nèi)存數(shù)據(jù)庫信息。
[0015]優(yōu)選地,通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性,包括:一級內(nèi)存數(shù)據(jù)庫的同步進(jìn)程實時檢測并解析重做日志redolog,并重組成數(shù)據(jù)庫操作語句;根據(jù)二級同步注冊表中的同步信息記錄將數(shù)據(jù)庫操作語句發(fā)送至對應(yīng)的二級內(nèi)存數(shù)據(jù)庫,并根據(jù)數(shù)據(jù)庫操作語句對對應(yīng)二級內(nèi)存數(shù)據(jù)庫的相關(guān)數(shù)據(jù)進(jìn)行更新,以保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
[0016]優(yōu)選地,每個二級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)為其對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)的全量備份。
[0017]優(yōu)選地,通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性之后,還包括:當(dāng)一級內(nèi)存數(shù)據(jù)庫出現(xiàn)故障時,切換至對應(yīng)的二級內(nèi)存數(shù)據(jù)庫。
[0018]通過本發(fā)明,采用將一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到二級內(nèi)存數(shù)據(jù)庫中,這樣的話,在一級內(nèi)存數(shù)據(jù)庫宕機(jī)時,可以切換到二級內(nèi)存數(shù)據(jù)庫上,繼續(xù)提供內(nèi)存級數(shù)據(jù)庫的高速數(shù)據(jù)訪問,從而解決了當(dāng)內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用需切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的的問題,進(jìn)而達(dá)到了提高系統(tǒng)的數(shù)據(jù)訪問效率的效果。
【專利附圖】
【附圖說明】
[0019]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0020]圖1是根據(jù)本發(fā)明實施例的數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖;
[0021]圖2是根據(jù)本發(fā)明實施例的數(shù)據(jù)同步方法流程圖;
[0022]圖3是根據(jù)本發(fā)明實施例的數(shù)據(jù)庫系統(tǒng)之間的同步過程示意圖;
[0023]圖4是根據(jù)本發(fā)明實施例的數(shù)據(jù)同步流程示意圖。
【具體實施方式】
[0024]下文中將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0025]為了便于理解,在本發(fā)明的實施例中,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫到內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)同步稱之為一級同步,內(nèi)存數(shù)據(jù)庫再次到內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)同步稱之為二級同步。
[0026]圖1是根據(jù)本發(fā)明實施例的數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖。如圖1所示,該數(shù)據(jù)庫系統(tǒng)包括一個關(guān)系型數(shù)據(jù)庫100,三個一級內(nèi)存數(shù)據(jù)庫(201、202、203)和三個二級內(nèi)存數(shù)據(jù)庫(301、302、303)。
[0027]其中,三個一級內(nèi)存數(shù)據(jù)庫(201、202、203)與關(guān)系型數(shù)據(jù)庫100相連,該三個一級內(nèi)存數(shù)據(jù)庫(201、202、203)與關(guān)系型數(shù)據(jù)庫100之間通過一級同步進(jìn)行數(shù)據(jù)的分發(fā)和更新。三個二級內(nèi)存數(shù)據(jù)庫(301、302、303)分別與對應(yīng)的一級內(nèi)存數(shù)據(jù)庫相連(201、202、203),二級內(nèi)存數(shù)據(jù)庫為一級內(nèi)存數(shù)據(jù)庫的備份數(shù)據(jù)庫。
[0028]在本實施例中,通過增加二級內(nèi)存數(shù)據(jù)庫作為一級內(nèi)存數(shù)據(jù)庫的備份數(shù)據(jù)庫,這樣的話,在一級內(nèi)存數(shù)據(jù)庫宕機(jī)時,可以切換到二級內(nèi)存數(shù)據(jù)庫上,繼續(xù)提供內(nèi)存級數(shù)據(jù)庫的高速數(shù)據(jù)訪問,從而解決了當(dāng)內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用需切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的的問題,進(jìn)而達(dá)到了提高系統(tǒng)的數(shù)據(jù)訪問效率的效果。
[0029]在上述的數(shù)據(jù)庫系統(tǒng)中,傳統(tǒng)關(guān)系型數(shù)據(jù)庫100可通過一級同步將數(shù)據(jù)按照一定的分發(fā)策略分散同步到一級內(nèi)存數(shù)據(jù)庫(201、202、203)中,這樣的話,業(yè)務(wù)可從內(nèi)存數(shù)據(jù)庫(201,202,203)中進(jìn)行數(shù)據(jù)的讀取,提高了數(shù)據(jù)訪問的性能。一級內(nèi)存數(shù)據(jù)庫(201、202、203)再通過二級同步將數(shù)據(jù)全量備份到對應(yīng)的二級內(nèi)存數(shù)據(jù)庫(301、302、303)中,并實時保持?jǐn)?shù)據(jù)的同步,這樣,在一級內(nèi)存數(shù)據(jù)庫(201、202、203)出現(xiàn)意外宕機(jī)不能使用時,能夠立即切換到對應(yīng)的二級內(nèi)存數(shù)據(jù)庫(301、302、303 ),對當(dāng)前的業(yè)務(wù)使用不產(chǎn)生任何的影響。一級同步和二級同步的結(jié)合,既提高了數(shù)據(jù)讀取的速度,又保證了在一級內(nèi)存庫以外宕掉時,能夠及時的切換到二級內(nèi)存數(shù)據(jù)庫上,數(shù)據(jù)的訪問不受任何影響。
[0030]圖2是根據(jù)本發(fā)明實施例的數(shù)據(jù)同步方法流程圖。如圖2所示,該數(shù)據(jù)同步方法包括以下步驟:
[0031]步驟S202,將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個一級內(nèi)存數(shù)據(jù)庫中;
[0032]步驟S204,將每個一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的二級內(nèi)存數(shù)據(jù)庫中,并通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
[0033]在本實施例中,通過將一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到二級內(nèi)存數(shù)據(jù)庫中,這樣的話,在一級內(nèi)存數(shù)據(jù)庫宕機(jī)時,可以切換到二級內(nèi)存數(shù)據(jù)庫上,繼續(xù)提供內(nèi)存級數(shù)據(jù)庫的高速數(shù)據(jù)訪問,從而解決了當(dāng)內(nèi)存數(shù)據(jù)庫宕機(jī)以后,應(yīng)用需切換回傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)訪問能力會下降的的問題,進(jìn)而達(dá)到了提高系統(tǒng)的數(shù)據(jù)訪問效率的效果。
[0034]其中,在步驟S202之前還包括:在關(guān)系型數(shù)據(jù)庫中創(chuàng)建一級同步注冊表,并在一級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、數(shù)據(jù)分發(fā)策略、目的內(nèi)存數(shù)據(jù)庫信息。
[0035]其中,步驟S202包括:當(dāng)關(guān)系型數(shù)據(jù)庫中有數(shù)據(jù)變更操作時,關(guān)系型數(shù)據(jù)庫中的同步進(jìn)程實時監(jiān)控并檢測到數(shù)據(jù)變更操作,按照一級同步注冊表中登記的數(shù)據(jù)分發(fā)策略將數(shù)據(jù)變更操作同步到對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中,并在該一級內(nèi)存數(shù)據(jù)庫上生成重做日志redolog。
[0036]其中,在步驟S204之前還包括:在一級內(nèi)存數(shù)據(jù)庫上創(chuàng)建二級同步注冊表,并在二級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、目的內(nèi)存數(shù)據(jù)庫信息。
[0037]其中,步驟S204包括:一級內(nèi)存數(shù)據(jù)庫的同步進(jìn)程實時檢測并解析重做日志redolog,并重組成數(shù)據(jù)庫操作語句;根據(jù)二級同步注冊表中的同步信息記錄將數(shù)據(jù)庫操作語句發(fā)送至對應(yīng)的二級內(nèi)存數(shù)據(jù)庫,并根據(jù)數(shù)據(jù)庫操作語句對對應(yīng)二級內(nèi)存數(shù)據(jù)庫的相關(guān)數(shù)據(jù)進(jìn)行更新,以保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
[0038]其中,每個二級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)為其對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)的全量備份。
[0039]其中,在步驟S204之后還包括:通過實時同步保持一級內(nèi)存數(shù)據(jù)庫與對應(yīng)二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性之后,還包括:當(dāng)一級內(nèi)存數(shù)據(jù)庫出現(xiàn)故障時,切換至對應(yīng)的二級內(nèi)存數(shù)據(jù)庫。
[0040]在上述實施例中,在傳統(tǒng)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)分發(fā)到多個一級內(nèi)存數(shù)據(jù)庫上的同時,將一級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)完全同步一份到二級內(nèi)存數(shù)據(jù)庫中,這樣保證了一級、二級內(nèi)存數(shù)據(jù)庫中數(shù)據(jù)的一致性。當(dāng)一級內(nèi)存數(shù)據(jù)庫意外宕掉時,可以實時的切換到二級內(nèi)存數(shù)據(jù)庫上,保證了數(shù)據(jù)的完整性以及數(shù)據(jù)訪問的速度。
[0041]圖3是根據(jù)本發(fā)明實施例的數(shù)據(jù)同步過程示意圖。如圖3所示,當(dāng)傳統(tǒng)關(guān)系型數(shù)據(jù)庫100上發(fā)生數(shù)據(jù)變更時,關(guān)系型數(shù)據(jù)庫100會通過一級同步將該變更實時同步到一級內(nèi)存數(shù)據(jù)庫200,并在該一級內(nèi)存數(shù)據(jù)庫200上生成重做日志redolog ;二級同步進(jìn)程實時去檢測并解析該重做日志redolog,同時重組成正常的數(shù)據(jù)庫操作語句對二級內(nèi)存數(shù)據(jù)庫300的相關(guān)數(shù)據(jù)進(jìn)行更新,保證一級內(nèi)存數(shù)據(jù)庫200與二級內(nèi)存數(shù)據(jù)庫300中數(shù)據(jù)的一致性。
[0042]圖4是根據(jù)本發(fā)明實施例的數(shù)據(jù)同步流程示意圖。如圖4所示,本實施例的數(shù)據(jù)同步流程包括如下步驟:
[0043]步驟S402,在關(guān)系型數(shù)據(jù)庫部署數(shù)據(jù)庫同步模塊。
[0044]步驟S404,在一級內(nèi)存數(shù)據(jù)庫上建立需要從傳統(tǒng)關(guān)系型數(shù)據(jù)庫中同步數(shù)據(jù)的表,在二級內(nèi)存數(shù)據(jù)庫上建立與一級內(nèi)存數(shù)據(jù)庫相同的表。
[0045]步驟S406,在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫中,創(chuàng)建一級同步注冊表,并在一級同步注冊表中新增同步信息記錄:表所屬的用戶名、表名、數(shù)據(jù)分發(fā)策略(一級同步,二級同步等)、目的內(nèi)存數(shù)據(jù)庫信息。
[0046]步驟S408,當(dāng)傳統(tǒng)關(guān)系型數(shù)據(jù)庫中有數(shù)據(jù)變更操作,同步模塊進(jìn)程會實時監(jiān)控并檢測到相應(yīng)的數(shù)據(jù)變更,按照注冊表中登記的數(shù)據(jù)分發(fā)策略,將相應(yīng)的數(shù)據(jù)變更操作同步到一級內(nèi)存數(shù)據(jù)庫中,更新相關(guān)表中對應(yīng)的數(shù)據(jù)。
[0047]通過上述步驟S402至S408可以將傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按照一定的分發(fā)策略同步到多個內(nèi)存數(shù)據(jù)庫中。
[0048]步驟S410,在一級內(nèi)存數(shù)據(jù)庫上創(chuàng)建二級同步注冊表,并在二級同步注冊表中新增同步信息記錄:表所屬的用戶名、表名、目的內(nèi)存數(shù)據(jù)庫信息。由于二級同步是全量同步,這里需要填上相應(yīng)一級內(nèi)存數(shù)據(jù)庫中所有的表名,即全量同步。
[0049]步驟S412,用戶在傳統(tǒng)關(guān)系型數(shù)據(jù)庫上進(jìn)行數(shù)據(jù)變更的操作,在一級同步到一級內(nèi)存數(shù)據(jù)庫上時,生成相應(yīng)的redolog(數(shù)據(jù)庫為確保已經(jīng)提交的數(shù)據(jù)不會丟失而建立的一種機(jī)制所產(chǎn)生的文件);
[0050]步驟S414,一級內(nèi)存數(shù)據(jù)庫上部署了二級同步進(jìn)程,實時的監(jiān)控并解析一級內(nèi)存數(shù)據(jù)庫上的redolog,將相應(yīng)的數(shù)據(jù)變更操作重組為正常的數(shù)據(jù)庫操作語句,根據(jù)步驟步驟S410中配置的二級內(nèi)存數(shù)據(jù)庫的信息,將相關(guān)數(shù)據(jù)庫操作語句發(fā)送到二級內(nèi)存數(shù)據(jù)庫上并執(zhí)行,使二級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)保持與一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)一致。
[0051]通過上述步驟S410至S414,可以將一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)實時的同步到二級內(nèi)存數(shù)據(jù)庫中,保證二級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)與一級內(nèi)存數(shù)據(jù)庫中完全一致。
[0052]在另外一個實施例中,還提供了一種數(shù)據(jù)同步軟件,該軟件用于執(zhí)行上述實施例中描述的技術(shù)方案。
[0053]在另外一個實施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲有上述軟件,該存儲介質(zhì)包括但不限于光盤、軟盤、硬盤、可擦寫存儲器等。
[0054]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果:
[0055]將傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)分發(fā)到多個一級內(nèi)存數(shù)據(jù)庫,并同時將一級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)全量備份到二級內(nèi)存數(shù)據(jù)庫中,在一級內(nèi)存數(shù)據(jù)庫發(fā)生故障時,能夠?qū)崟r的切換到二級內(nèi)存數(shù)據(jù)庫,由于二級內(nèi)存數(shù)據(jù)庫是一級內(nèi)存數(shù)據(jù)庫的全量備份,數(shù)據(jù)是完全一致的,而且都是內(nèi)存數(shù)據(jù)庫,所以對于應(yīng)用來說,功能、性能和數(shù)據(jù)將不受任何影響。在一級內(nèi)存數(shù)據(jù)庫故障恢復(fù)后,所有的訪問將切換回一級內(nèi)存數(shù)據(jù)庫。
[0056]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0057]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)庫系統(tǒng),其特征在于,包括: 一個關(guān)系型數(shù)據(jù)庫; 一個或多個一級內(nèi)存數(shù)據(jù)庫,與所述關(guān)系型數(shù)據(jù)庫相連,所述一級內(nèi)存數(shù)據(jù)庫與所述關(guān)系型數(shù)據(jù)庫之間通過數(shù)據(jù)同步進(jìn)行數(shù)據(jù)的分發(fā)和更新; 一個或多個二級內(nèi)存數(shù)據(jù)庫,與所述一級內(nèi)存數(shù)據(jù)庫相連,所述二級內(nèi)存數(shù)據(jù)庫為所述一級內(nèi)存數(shù)據(jù)庫的備份數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述一級內(nèi)存數(shù)據(jù)庫為多個,每個一級內(nèi)存數(shù)據(jù)庫中保存有所述關(guān)系型數(shù)據(jù)庫按預(yù)定策略分發(fā)至該一級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述二級內(nèi)存數(shù)據(jù)庫為多個,二級內(nèi)存數(shù)據(jù)庫與一級內(nèi)存數(shù)據(jù)庫存在一一對應(yīng)的關(guān)系,并且每個二級內(nèi)存數(shù)據(jù)庫中所保存的數(shù)據(jù)為與其對應(yīng)的一級內(nèi)存數(shù)據(jù)庫的全量備份數(shù)據(jù)。
4.一種根據(jù)權(quán)利要求1至3任一項所述的數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步方法,其特征在于,包括: 將所述關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個所述一級內(nèi)存數(shù)據(jù)庫中; 將每個所述一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的所述二級內(nèi)存數(shù)據(jù)庫中,并通過實時同步保持所述一級內(nèi)存數(shù)據(jù)庫與對應(yīng)所述二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)同步方法,其特征在于,將所述關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個所述一級內(nèi)存數(shù)據(jù)庫中之前,還包括: 在所述關(guān)系型數(shù)據(jù)庫中創(chuàng)建一級同步注冊表,并在所述一級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、數(shù)據(jù)分發(fā)策略、目的內(nèi)存數(shù)據(jù)庫信息。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)同步方法,其特征在于,將所述關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)按預(yù)定的分發(fā)策略同步到多個所述一級內(nèi)存數(shù)據(jù)庫中,包括: 當(dāng)所述關(guān)系型數(shù)據(jù)庫中有數(shù)據(jù)變更操作時,所述關(guān)系型數(shù)據(jù)庫中的同步進(jìn)程實時監(jiān)控并檢測到所述數(shù)據(jù)變更操作,按照所述一級同步注冊表中登記的數(shù)據(jù)分發(fā)策略將所述數(shù)據(jù)變更操作同步到對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中,并在該一級內(nèi)存數(shù)據(jù)庫上生成重做日志redolog。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)同步方法,其特征在于,將每個所述一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)備份到與其對應(yīng)的所述二級內(nèi)存數(shù)據(jù)庫中之前,還包括: 在所述一級內(nèi)存數(shù)據(jù)庫上創(chuàng)建二級同步注冊表,并在所述二級同步注冊表中新增以下同步信息記錄:表所屬的用戶名、表名、目的內(nèi)存數(shù)據(jù)庫信息。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)同步方法,其特征在于,通過實時同步保持所述一級內(nèi)存數(shù)據(jù)庫與對應(yīng)所述二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性,包括: 所述一級內(nèi)存數(shù)據(jù)庫的同步進(jìn)程實時檢測并解析所述重做日志redolog,并重組成數(shù)據(jù)庫操作語句; 根據(jù)所述二級同步注冊表中的同步信息記錄將所述數(shù)據(jù)庫操作語句發(fā)送至對應(yīng)的二級內(nèi)存數(shù)據(jù)庫,并根據(jù)所述數(shù)據(jù)庫操作語句對所述對應(yīng)二級內(nèi)存數(shù)據(jù)庫的相關(guān)數(shù)據(jù)進(jìn)行更新,以保持所述一級內(nèi)存數(shù)據(jù)庫與對應(yīng)所述二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性。
9.根據(jù)權(quán)利要求1至8任一項所述的數(shù)據(jù)同步方法,其特征在于,每個二級內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)為其對應(yīng)的一級內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù)的全量備份。
10.根據(jù)權(quán)利要求9任一項所述的數(shù)據(jù)同步方法,其特征在于,通過實時同步保持所述一級內(nèi)存數(shù)據(jù)庫與對應(yīng)所述二級內(nèi)存數(shù)據(jù)庫之間的數(shù)據(jù)一致性之后,還包括: 當(dāng)所述一級內(nèi)存數(shù)據(jù)庫出現(xiàn)故障時,切換至對應(yīng)的所述二級內(nèi)存數(shù)據(jù)庫。
【文檔編號】G06F17/30GK104424275SQ201310386194
【公開日】2015年3月18日 申請日期:2013年8月29日 優(yōu)先權(quán)日:2013年8月29日
【發(fā)明者】王松松, 姚莉, 嚴(yán)俊 申請人:中興通訊股份有限公司