專利名稱:恢復(fù)數(shù)據(jù)庫時并行讀取主從備份的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用備份拷貝和變化累積數(shù)據(jù)集進(jìn)行數(shù)據(jù)庫恢復(fù)。具體地說,本發(fā)明涉及用完整或不完整的變化積累數(shù)據(jù)集進(jìn)行數(shù)據(jù)庫恢復(fù)。
對大量數(shù)據(jù)庫的管理在現(xiàn)代社會有著永恒的重要性,現(xiàn)代社會依賴于反應(yīng)關(guān)鍵信息的數(shù)據(jù)的可靠存儲。一般地,對用戶來說,數(shù)據(jù)庫必須是持續(xù)可操作和可用的。當(dāng)今數(shù)據(jù)庫系統(tǒng)基本上是堅固的,它們不經(jīng)常經(jīng)歷故障。然而,在故障出現(xiàn)時,必須能有效且精確地進(jìn)行數(shù)據(jù)庫恢復(fù),以使用戶的損失減至最少。因此,數(shù)據(jù)庫恢復(fù)是必須能迅速執(zhí)行的一項(xiàng)操作,以便使用戶的停機(jī)時間減至最少。經(jīng)歷長時間的停機(jī)的數(shù)據(jù)庫會很快地導(dǎo)致經(jīng)濟(jì)災(zāi)難。
數(shù)據(jù)庫由復(fù)雜的數(shù)據(jù)庫管理系統(tǒng)進(jìn)行管理。數(shù)據(jù)庫管理系統(tǒng)的一個實(shí)例是可從紐約Armonk的IBM公司買到的信息管理系統(tǒng)(IMS)。IMS系統(tǒng)目前在操作上用來服務(wù)于大量的數(shù)據(jù)庫。IMS系統(tǒng)允許訪問一個或多個數(shù)據(jù)庫以使用戶與保存在數(shù)據(jù)庫中的數(shù)據(jù)相交互,多數(shù)用戶的存取涉及事務(wù)操作。
當(dāng)用戶更新數(shù)據(jù)庫中數(shù)據(jù)庫數(shù)據(jù)集時,數(shù)據(jù)庫管理系統(tǒng)將更新記錄進(jìn)日志數(shù)據(jù)集。日志數(shù)據(jù)集是諸如文件之類的大量數(shù)據(jù),這些數(shù)據(jù)反映了對數(shù)據(jù)庫的一系列更新。日志數(shù)據(jù)集被記錄,到定義了起點(diǎn)和終點(diǎn)的順序記錄。
用戶可周期性地作數(shù)據(jù)庫的備份拷貝或系列備份拷貝,以便幫助恢復(fù)數(shù)據(jù)庫。這些備份拷貝可由磁帶管理系統(tǒng)記錄在磁帶檔案上。備份拷貝用作將數(shù)據(jù)庫恢復(fù)成數(shù)據(jù)庫出故障之前的狀態(tài)的基礎(chǔ)。在恢復(fù)時,根據(jù)日志數(shù)據(jù)集的記錄對數(shù)據(jù)庫進(jìn)行隨后的更新。恢復(fù)還需要將數(shù)據(jù)庫和備份的屬性存儲起來。數(shù)據(jù)庫管理系統(tǒng)通常包括用于對恢復(fù)進(jìn)行控制的數(shù)據(jù)集,該數(shù)據(jù)集包括以和備份拷貝的多種屬性。數(shù)據(jù)庫管理系統(tǒng)使用記錄在該數(shù)據(jù)集中與數(shù)據(jù)庫和備份拷貝相關(guān)的某種形式的恢復(fù)控制信息,以幫助進(jìn)行恢復(fù)。
數(shù)據(jù)庫管理系統(tǒng)包括恢復(fù)工具以便對數(shù)據(jù)庫故障進(jìn)行響應(yīng)。在數(shù)據(jù)庫發(fā)生故障時,恢復(fù)工具會創(chuàng)建一新的數(shù)據(jù)庫并將備份拷貝寫入新數(shù)據(jù)庫。該恢復(fù)工具還從創(chuàng)建備份拷貝的時間將所有更新都應(yīng)用到到前述數(shù)據(jù)庫。用于從備份拷貝的最后狀態(tài)恢復(fù)新數(shù)據(jù)庫的信息取自日志數(shù)據(jù)集和恢復(fù)控制信息。
為了幫助進(jìn)行數(shù)據(jù)庫恢復(fù),本文稱為變化累積工具的工具對更新進(jìn)行累積并將它們放到變化累積數(shù)據(jù)集(CADS)內(nèi)。CADS是日志記錄中應(yīng)用到新數(shù)據(jù)庫并在數(shù)據(jù)庫恢復(fù)期間用作輸入的變化的累積。CADS可反映多于一個數(shù)據(jù)庫的更新。典型的數(shù)據(jù)庫記錄是一次更新一部分,可以有重疊的更新,這就使得恢復(fù)的次序變得很重要。CADS接收重疊的更新,但在所有變化之后,CADS僅反映出最終的變化。
為了創(chuàng)建CADS,變化累積工具順序地即一個接一個地讀取日志數(shù)據(jù)集。一般地說,用戶將他們的多個數(shù)據(jù)庫組織成變化累積組,因此,變化累積工具能盡可能有效率地進(jìn)行操作。用戶可以針對一個變化累積組運(yùn)行變化累積過程,并將一可選的輔助輸出-未被寫入變化累積數(shù)據(jù)集的成組日志記錄-用作要加以處理的下一個變化累積組的變化累積工具的輸入。對其中當(dāng)前的變化累積操作使用了前一次變化累積操作的輔助輸出的各變化累積組都這樣做。這一串行過程直接由用戶管理。用戶通常周期性地進(jìn)行變化累積,因此,當(dāng)變化累積組中數(shù)據(jù)庫數(shù)據(jù)集需要恢復(fù)時,可使進(jìn)行最終變化累積作業(yè)和隨后的恢復(fù)作業(yè)所需的時間減至最少。正如所頂料的那樣,這種順序恢復(fù)過程是相當(dāng)復(fù)雜的。
該恢復(fù)工具將整個CADS讀入存儲器并使用該CADS中與正加以恢復(fù)的數(shù)據(jù)庫相關(guān)的那部分。每條記錄均具有一標(biāo)識,它是順序的,從而順序地恢復(fù)數(shù)據(jù)庫數(shù)據(jù)集。恢復(fù)工具對CADS內(nèi)的每條記錄都進(jìn)行尋址,以檢查該記錄的數(shù)據(jù)是否有變化。如果是,則訪問CADS,并將相關(guān)的記錄合并進(jìn)新數(shù)據(jù)庫。
在日常操作期間,數(shù)據(jù)庫管理系統(tǒng)周期性地在上述數(shù)據(jù)庫和日志數(shù)據(jù)集中創(chuàng)建更新。隨著時間的推移,可創(chuàng)建若干個更新。但是,更新在物理上寫入數(shù)據(jù)庫之前,更新并不永久地存儲在數(shù)據(jù)庫中。一般地說,數(shù)據(jù)庫活動是以能將更新“提交”給數(shù)據(jù)庫為基礎(chǔ)的。提交點(diǎn)是更新成為數(shù)據(jù)庫永久組成部分的時間點(diǎn)。提交點(diǎn)之間的時間跨度稱為“提交范圍”或“恢復(fù)單元”(UOR)。如果出現(xiàn)錯誤,如對數(shù)據(jù)庫的寫錯誤從而不能更新,那么,自最后提交點(diǎn)以來產(chǎn)生的所有更新均被“放棄”。就好像從未進(jìn)行過更新。
用于實(shí)現(xiàn)數(shù)據(jù)庫更新和提交點(diǎn)處理的一種方法是數(shù)據(jù)庫管理器將數(shù)據(jù)庫的變化保留在存儲器并不將這些變化應(yīng)用到數(shù)據(jù)庫,直至達(dá)到提交點(diǎn)。在更新被建立時,將變化了的數(shù)據(jù)庫數(shù)據(jù)的拷貝寫入日志。在達(dá)到提交點(diǎn)且如預(yù)期那樣一切順利,就將更新寫入數(shù)據(jù)庫。如果出現(xiàn)錯誤,則釋放包含有數(shù)據(jù)庫更新的存儲器。
對數(shù)據(jù)庫的共同更新是一個事務(wù),事務(wù)是一個包括執(zhí)行多項(xiàng)活動的操作的整體邏輯塊。在最簡單的層次上,事務(wù)可包括減少一帳戶并增加另一帳戶。該事務(wù)中所執(zhí)行的活動可超出第一提交點(diǎn)并且在后續(xù)提交點(diǎn)之前不是永久的。
變化累積工具通過獲取業(yè)已在一定提交點(diǎn)范圍內(nèi)提交的日志數(shù)據(jù)集而創(chuàng)建CADS并將它們組合起來。所提交的日志數(shù)據(jù)集能在恢復(fù)期間很容易地提供給新數(shù)據(jù)庫,因?yàn)檫@些數(shù)據(jù)集是永久的。在最后被記錄的提交點(diǎn)之后出現(xiàn)的更新不能立即提供給新數(shù)據(jù)庫,因?yàn)?,不能保證在以后的提交點(diǎn)提交這些更新。提交點(diǎn)出錯會導(dǎo)致更新以及任何相關(guān)的事務(wù)放棄。如果需要放棄更新,則檢索日志記錄并使用未改變的數(shù)據(jù)庫的拷貝,以便能有效地取消改變。因此,不必將提交點(diǎn)之后出現(xiàn)的更新提交給數(shù)據(jù)庫。
每個CADS均包括一詳細(xì)記錄,該記錄是來自一個或多個日志的被提交的更新。每個詳細(xì)記錄均是一系列連續(xù)的字節(jié),這些字節(jié)可覆蓋進(jìn)一個數(shù)據(jù)庫物理記錄的備份拷貝。應(yīng)用CADS中的所有詳細(xì)記錄等價于對自從“合并結(jié)束點(diǎn)”范圍內(nèi)進(jìn)行備份拷貝以來進(jìn)入的數(shù)據(jù)庫重新運(yùn)行所有的事務(wù)。合并結(jié)束點(diǎn)是這樣的時間點(diǎn),其中,由于所有的變化記錄對更新來說都已不可用,故這些更新不再與新數(shù)據(jù)庫相合并。因此,不能就是否已提交了這些更新作出保證。將不能與新數(shù)據(jù)庫合并的更新寫入稱為“溢出(spill)記錄”的記錄。一個完整的CADS僅包括詳細(xì)記錄,而一個不完整的CADS則包括詳細(xì)記錄和溢出記錄。在當(dāng)多個數(shù)據(jù)庫管理系統(tǒng)共享一個數(shù)據(jù)庫時發(fā)生不完整的CADS的創(chuàng)建。大多數(shù)數(shù)據(jù)庫管理系統(tǒng)以共享會話的方式運(yùn)行,以便最大限度地使用數(shù)據(jù)庫。在共享會話期間,存在有不完整的日志數(shù)據(jù)集,這些數(shù)據(jù)集帶有所有日志記錄都不可用的時間段中的更新。在多個數(shù)據(jù)庫管理系統(tǒng)的共享會話中,不可能在不使數(shù)據(jù)庫離線并檢查日志數(shù)據(jù)集的情況下具有完整的CADS。
該變化累積工具不能確定不完整的日志數(shù)據(jù)集的更新記錄因?yàn)橛胁豢捎玫娜罩居涗?。該變化累積工具不能確定這些更新記錄,從而不知道是否能應(yīng)用更新。將這些更新記錄寫溢出記錄。如果相關(guān)的日志記錄變?yōu)榭捎玫?,則在后續(xù)的變化累積過程中讀取溢出記錄中的更新記錄,并且,這些記錄可與其它更新相合并。在共享會話期間,變化記錄是不完整的,因?yàn)?,?dāng)變化累積工具運(yùn)行時,更新正在進(jìn)行,并且,某些變化記錄是不可用的。
在數(shù)據(jù)庫出現(xiàn)故障時,終止仍在掛起的所有更新和事務(wù)。如果在數(shù)據(jù)庫出現(xiàn)故障時未提交更新,則放棄相關(guān)的事務(wù)。在提交更新之前,更新并不是永久地用于數(shù)據(jù)庫。在恢復(fù)期間,恢復(fù)工具會判斷更新是以提交為結(jié)束還是以放棄為結(jié)束。如果更新以提交為結(jié)束,則將更新作用于新數(shù)據(jù)庫。如果以放棄為結(jié)束,則撤消更新。
共享數(shù)據(jù)庫的恢復(fù)為兩個步驟的過程。首先,恢復(fù)工具必須運(yùn)行變化累積過程以便讀取相關(guān)的日志記錄并讀取不完整CADS以創(chuàng)建完整的CADS。因?yàn)榛謴?fù)工具不能將包含在不完整CADS內(nèi)的數(shù)據(jù)與新數(shù)據(jù)庫相合并,所以需要這一步驟。因此,在本領(lǐng)域中,恢復(fù)工具不能從不完整的CADS中直接進(jìn)行恢復(fù)。必須首先完成不完整的CADS。在第二個步驟中,恢復(fù)工具應(yīng)用備份拷貝、完整的CADS和日志數(shù)據(jù)集并將進(jìn)些組成成份相合并以形成新數(shù)據(jù)庫。
在恢復(fù)過程中,完成不完整的CADS會花很長時間,因?yàn)樾枰x取具有更新的所有日志數(shù)據(jù)集?;謴?fù)工具還需要讀取完整的CADS、將它們的數(shù)據(jù)與日志更新相合并、并根據(jù)備份拷貝和不包含在完整CADS內(nèi)任何可能的額外日志數(shù)據(jù)集進(jìn)行恢復(fù)。該恢復(fù)過程可以是一個非常長的過程并且能向非常需要被恢復(fù)的數(shù)據(jù)庫的用戶提供最佳的結(jié)果。此外,如果用戶具有一系列數(shù)據(jù)庫并且如果有若干這樣的數(shù)據(jù)庫需要恢復(fù),則可能會存在有多個必須加以完成的不完整的CADS。完成多個不完整的CADS需要讀取多個日志數(shù)據(jù)集。一般地說,為各個不完整的CADS均順序地讀取每個日志數(shù)據(jù)集。因此,在恢復(fù)過程中必須讀取大量的數(shù)據(jù),這就可能是較長的過程。
數(shù)據(jù)庫恢復(fù)需要順序地讀取各個備份拷貝和各個CADS。因此,單個數(shù)據(jù)庫的故障需要讀取各備份拷貝的時間再加上讀取各CADS的時間以及寫備份拷貝和將CADS與被恢復(fù)的數(shù)據(jù)庫合并起來的時間。該讀取時間是除完成各個不完整CADS所花費(fèi)的時間以外的時間。此外,如果需要恢復(fù)多個數(shù)據(jù)庫且這些數(shù)據(jù)庫具有單個CADS內(nèi)的數(shù)據(jù),則恢復(fù)工具對每個數(shù)據(jù)庫的恢復(fù)都讀取CADS一次。這就可能需要若干次讀取同一CADS。
因此,提供簡單的能顯著減少數(shù)據(jù)庫出現(xiàn)故障之后的恢復(fù)時間的數(shù)據(jù)庫恢復(fù)設(shè)備和方法是本領(lǐng)域中的一個進(jìn)步。該方法和設(shè)備應(yīng)能同時恢復(fù)多個數(shù)據(jù)庫數(shù)據(jù)集。提供能消除需要執(zhí)行變化累積過程以完成不完整CADS從而減少恢復(fù)時間的數(shù)據(jù)庫恢復(fù)過程在本領(lǐng)域中也是一種進(jìn)步。消除為與需要進(jìn)行恢復(fù)的數(shù)據(jù)庫相關(guān)的各CADS順序讀取各備份拷貝和CADS在本領(lǐng)域中又是一種進(jìn)步。
以下公開并要求保護(hù)上述進(jìn)步。
本發(fā)明提供了一種恢復(fù)工具設(shè)備,用于在一個或多個數(shù)據(jù)庫數(shù)據(jù)集出現(xiàn)故障時加速恢復(fù)時間。本發(fā)明包括一備份拷貝恢復(fù)工具,它用于讀取和恢復(fù)需要恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集的備份拷貝。一變化累積管理器也包括在上述恢復(fù)工具設(shè)備內(nèi),以讀取一個或多個CADS中的詳細(xì)記錄。本發(fā)明還包括一日志管理器,它用于讀取一個或多個與出故障的數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)的日志。一映像拷貝恢復(fù)工具將詳細(xì)記錄和更新應(yīng)用于備份拷貝,以便形成被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。備份拷貝恢復(fù)工具并行地讀取數(shù)據(jù)庫數(shù)據(jù)集的一個或多個備份拷貝。同時,變化累積管理器并行地讀取一個或多個CADS。與需要進(jìn)行恢復(fù)的一個或多個數(shù)據(jù)庫數(shù)據(jù)集相關(guān)的各CADS只需讀入存儲器一次。通過這種方式,并行執(zhí)行上述讀取過程會減少恢復(fù)時間。為了進(jìn)一步加快恢復(fù),在將備份拷貝寫入被恢復(fù)的數(shù)據(jù)庫時,當(dāng)需要來自CADS的記錄且這些記錄變?yōu)榭捎脮r,就將這些記錄與被恢復(fù)的數(shù)據(jù)庫相合并。
在共享環(huán)境中,每個CADS都是一個不完整的CDAS,從而其中有詳細(xì)記錄和溢出記錄。變化累積管理器僅讀取業(yè)已提交了的詳細(xì)記錄并忽略溢出記錄。這就會消除為進(jìn)行恢復(fù)而完成各個不完整CADS的通常耗時的過程。
日志管理器讀取一個或多個日志,以導(dǎo)出溢出記錄中的更新。這些更新在合并結(jié)束點(diǎn)之后。讀取日志可確認(rèn)溢出記錄中的哪些更新業(yè)已提交并可與恢復(fù)的數(shù)據(jù)庫相合并。并行地讀取日志以減少讀取時間,并且在完成讀取過程之前,將該日志與被恢復(fù)的數(shù)據(jù)庫相合并。
本發(fā)明的目的是并行地執(zhí)行備份拷貝、CADS和日志的讀取過程。
本發(fā)明的另一目的是在上述讀取過程中同時處理和合并數(shù)據(jù)。
本發(fā)明的再一個目的是需要單次讀取帶有用于一個以上數(shù)據(jù)庫數(shù)據(jù)集的數(shù)據(jù)的CADS。
本發(fā)明的還一個目的是能在不執(zhí)行額外變化累積工具的情況下從一個或多個不完整CADS中直接恢復(fù)數(shù)據(jù)庫數(shù)據(jù)集。
從以下說明和后附權(quán)利要求中能更完全地看出本發(fā)明的上述和其它目的、特征及優(yōu)點(diǎn),或者,可以通過如以下該那樣實(shí)施本發(fā)明而了解本發(fā)明的上述和其它目的、特征及優(yōu)點(diǎn)。
為了能很容易地理解獲得本發(fā)明上述和其它優(yōu)點(diǎn)及目的,以下參照在附圖示出的本發(fā)明特定實(shí)施例更具體地說明以上簡要說明的本發(fā)明。應(yīng)該認(rèn)識到,該附圖僅僅說明了本發(fā)明的典型實(shí)施例,因而不應(yīng)看作是限制本發(fā)明的范圍,以下參考附圖確切并詳細(xì)地說明及解釋本發(fā)明,附圖中
圖1是說明計算機(jī)系統(tǒng)的實(shí)施例的示例方框圖,該計算機(jī)系統(tǒng)用于實(shí)現(xiàn)本發(fā)明的標(biāo)準(zhǔn)(format)系統(tǒng);圖2是說明本發(fā)明一個實(shí)施例的用于恢復(fù)一個或多個數(shù)據(jù)庫數(shù)據(jù)集的組件之間通訊和互連的硬件和軟件組件的框圖;圖3是說明本發(fā)明一個實(shí)施例的用于恢復(fù)一個或多個數(shù)據(jù)庫數(shù)據(jù)集的恢復(fù)設(shè)備的一個實(shí)施例的框圖;圖4是涉及用于恢復(fù)一個或多個數(shù)據(jù)庫數(shù)據(jù)集的設(shè)備和方法的日志時間線的圖;圖5是說明用于恢復(fù)一個或多個數(shù)據(jù)庫數(shù)據(jù)集的方法的一個實(shí)施例的流程圖。
參照附圖可最佳地理解本發(fā)明的當(dāng)前最佳實(shí)施例,附圖中,全部都是用相同的標(biāo)號表示相同的部件??梢院苋菀椎卣J(rèn)識到,正如本文附圖中大致說明的那樣,可按多種不同的結(jié)構(gòu)來設(shè)置和設(shè)計本發(fā)明的組件。因此,如圖1至圖5所示那樣,以下對本發(fā)明設(shè)備、系統(tǒng)和方法的實(shí)施例的詳細(xì)說明并不是要如權(quán)利要求那樣限制本發(fā)明的范圍,而僅僅是表示本發(fā)明的當(dāng)前最佳實(shí)施例。
圖1至圖5是概略框圖和流程圖,它們詳細(xì)說明了依照本發(fā)明用于在圖1的計算機(jī)系統(tǒng)中進(jìn)行操作的硬件和軟件模塊的特定實(shí)施例。
圖1是說明計算機(jī)系統(tǒng)10的示例方框圖,其中,按本發(fā)明操作的可執(zhí)行應(yīng)用程序位于網(wǎng)絡(luò)14內(nèi)的一個或多個計算機(jī)工作站12上。網(wǎng)絡(luò)14可包括廣域網(wǎng)(WAN),也可包括互連的網(wǎng)絡(luò)系統(tǒng),一個具體實(shí)例是因特網(wǎng)和因特網(wǎng)上支持的萬維網(wǎng)。
典型的計算機(jī)工具站12可包括邏輯設(shè)備16并由中央處理器(CPU)、微處理器、通用可編程設(shè)備、應(yīng)用程序?qū)S玫挠布?、狀態(tài)機(jī)或其它處理機(jī)實(shí)現(xiàn)。邏輯設(shè)備16以可操作的方式與一個或多個存儲器設(shè)備18相連。示出的存儲器設(shè)備18包括諸如硬盤驅(qū)動器、CD ROM驅(qū)動器,磁帶驅(qū)動器或任何其它適當(dāng)?shù)拇鎯υO(shè)備的非易失性存儲設(shè)備20。存儲設(shè)備18還包括只讀存儲器(ROM)22和隨機(jī)存取易失性存儲器(RAM)24。RAM24可用于在執(zhí)行期間存儲由邏輯設(shè)備16執(zhí)行的指令。存儲器設(shè)備18還包括一虛擬存儲器25,該存儲器在一個實(shí)施例中是用于擴(kuò)展RAM24的非易失性存儲器20的一部分。
計算機(jī)系統(tǒng)10還可包括輸入設(shè)備26,它用于接收來自用戶或來自另一設(shè)備的輸入。與此相似,輸出設(shè)備28可設(shè)置在計算機(jī)系統(tǒng)10內(nèi)或者可從計算機(jī)系統(tǒng)10加以存取。諸如網(wǎng)絡(luò)接口卡30之類的網(wǎng)絡(luò)端口設(shè)置成用于通過網(wǎng)絡(luò)14與外部設(shè)備連接相連。在網(wǎng)絡(luò)14遠(yuǎn)離計算機(jī)工作站的情況下,網(wǎng)絡(luò)接口卡30可包括調(diào)制解調(diào)器并可通過諸如電話線之類的局部存取線與網(wǎng)絡(luò)14相連。
在內(nèi)部,系統(tǒng)總線32以可操作的方式與邏輯設(shè)備16、存儲器設(shè)備18、輸入設(shè)備26、輸出設(shè)備28、網(wǎng)卡38以及一個或多個附加端口34互連。系統(tǒng)總線32可看作是數(shù)據(jù)載體。同樣,可按多種結(jié)構(gòu)來實(shí)現(xiàn)系統(tǒng)總線32。可同樣將導(dǎo)線、光纖線、通過可見光、紅外線和射頻的無線電磁通訊線路適當(dāng)?shù)貙?shí)現(xiàn)為系統(tǒng)總線32。
一般地說,網(wǎng)絡(luò)14可包括單個的局域網(wǎng)、廣域網(wǎng)、多個相連的網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)或諸如因特網(wǎng)之類的互連網(wǎng)絡(luò)系統(tǒng)。網(wǎng)絡(luò)14上的各個工作站12可具有不同程度和類型的通訊能力和邏輯能力。可在網(wǎng)絡(luò)上使用不同的通訊協(xié)議例如ISO/OSI、IPX、TCP/IP,但在因特網(wǎng)的情況下,單一的分層通訊協(xié)議(TCP/IP)在不同的網(wǎng)絡(luò)14與工作站12之間進(jìn)行通訊。
網(wǎng)絡(luò)14可包括用于將工作站12互聯(lián)起來的中樞鏈路36??捎镁拖到y(tǒng)總線32該的任何多種結(jié)構(gòu)來實(shí)現(xiàn)中樞鏈路36。路由器38也連接于包括因特網(wǎng)40的一個或多個其它網(wǎng)絡(luò)。
工作站12通過中樞鏈路36和/或因特網(wǎng)40彼此相通訊。工作站12可包括應(yīng)用程序服務(wù)器42和/或諸如打印機(jī)、掃描儀或傳真機(jī)之類的外圍設(shè)備44。因此,一般地說,任何工作站12之間都存在著通訊鏈路。
本發(fā)明的一個方面涉及在共享或非共享環(huán)境中恢復(fù)一個或多個數(shù)據(jù)庫或數(shù)據(jù)庫數(shù)據(jù)集的設(shè)備。在說明各個實(shí)施例時,提及單個或多個部件并不是要將本發(fā)明僅僅限于該的結(jié)構(gòu)。
參照圖2,框圖說明了具有多種組件的數(shù)據(jù)庫系統(tǒng)200。數(shù)據(jù)庫系統(tǒng)200可包括一個以上的數(shù)據(jù)庫管理系統(tǒng)202。由DBMS1至DBMSN表示數(shù)據(jù)庫管理系統(tǒng)202,以表示數(shù)據(jù)庫系統(tǒng)200中的多個數(shù)據(jù)庫管理系統(tǒng)202。數(shù)據(jù)庫管理系統(tǒng)202可包含在圖1所示的工作站12中。適用于本發(fā)明的數(shù)據(jù)庫管理系統(tǒng)的一個實(shí)例是IMS。
每個數(shù)據(jù)庫管理系統(tǒng)202均可包括日志204,它帶有日志記錄,以跟蹤對保存在存儲器18或數(shù)據(jù)庫206內(nèi)的數(shù)據(jù)的更新。日志204用于跟蹤數(shù)據(jù)的變化以及相應(yīng)數(shù)據(jù)庫管理系統(tǒng)202所執(zhí)行的其它事件。變化及其它事件作為日志記錄存儲在日志204內(nèi)。日志204可存儲在工作站12的一個或多個存儲器設(shè)備18上。
數(shù)據(jù)庫系統(tǒng)200還包括帶有一個或多個數(shù)據(jù)庫數(shù)據(jù)集的一個或多個數(shù)據(jù)庫206。數(shù)據(jù)庫206被標(biāo)識為DB1至DBN,以說明系統(tǒng)200中數(shù)據(jù)庫206個數(shù)的變化。數(shù)據(jù)庫206可以是諸如IMS數(shù)據(jù)庫之類的層次結(jié)構(gòu)的數(shù)據(jù)庫,但也可在另一實(shí)施例中包括關(guān)系型數(shù)據(jù)庫。在整個申請書中,以可互換的方式使用數(shù)據(jù)庫或數(shù)據(jù)庫數(shù)據(jù)集。
每個數(shù)據(jù)庫管理系統(tǒng)202都能訪問一個或多個數(shù)據(jù)庫206,以便用戶能與保存在數(shù)據(jù)庫206上的任何數(shù)據(jù)進(jìn)行交互。一個或多個數(shù)據(jù)庫管理系統(tǒng)202還可服務(wù)于單個的數(shù)據(jù)庫206。這是一種通用的作法,因?yàn)?,?shù)據(jù)庫206的規(guī)模通常需要一個以上的數(shù)據(jù)庫管理系統(tǒng)202來有效地管理事務(wù)。在有多個數(shù)據(jù)庫管理系統(tǒng)202同時訪問數(shù)據(jù)庫206時就會出現(xiàn)共享會話。
用電子通訊線路208來表示數(shù)據(jù)庫管理系統(tǒng)202與數(shù)據(jù)庫206的互連。電子通訊線路208可被看作是數(shù)據(jù)載體并可被實(shí)現(xiàn)為網(wǎng)絡(luò)主干36。電子通訊線路208不需要組件在物理上彼此相連。可用電磁、紅外、或其它無線通訊線路來實(shí)現(xiàn)上述電子線路。此外,由于數(shù)據(jù)庫系統(tǒng)200在實(shí)現(xiàn)形式上是可變的,故圖2僅用于說明的目的,因?yàn)?,不是每一個系統(tǒng)200都具有與多個數(shù)據(jù)庫206相通訊的多個數(shù)據(jù)庫管理系統(tǒng)202。就本發(fā)明的目的而言,存在有彼此相通訊的一個數(shù)據(jù)庫管理系統(tǒng)202和一個數(shù)據(jù)庫206就足夠了。
數(shù)據(jù)庫恢復(fù)方法需要數(shù)據(jù)庫206具有相應(yīng)的備份拷貝,該拷貝可以是物理拷貝,也可以是邏輯拷貝。在一個實(shí)施例中,盡管也可以使用其它的存儲裝置,但備份拷貝210存儲在磁帶驅(qū)動器上。備份拷貝210反映了某一時間范圍內(nèi)的數(shù)據(jù)庫206的內(nèi)容并用作數(shù)據(jù)庫恢復(fù)過程的起點(diǎn)。但是,備份拷貝210不是數(shù)據(jù)庫206的數(shù)據(jù)的完整信息庫,并且,如下該那樣需要其它數(shù)據(jù)才能完成數(shù)據(jù)庫恢復(fù)。備份拷貝210可在需要時為進(jìn)行恢復(fù)而與系統(tǒng)200的其它組件作電子通訊208。
數(shù)據(jù)庫系統(tǒng)200還包括與恢復(fù)有關(guān)的信息的信息庫212。信息庫212用于存儲在介質(zhì)出故障或出現(xiàn)其它類型無意錯誤的情況下恢復(fù)丟失數(shù)據(jù)所需的信息。例如,系統(tǒng)內(nèi)的硬件可能意外地出故障,或者,用戶可能偶然輸入了有問題的數(shù)據(jù)或指令,這些數(shù)據(jù)或指令會導(dǎo)致一個或多個數(shù)據(jù)庫206中的不一致性。信息庫212包括數(shù)據(jù)集,這些數(shù)據(jù)集合有與數(shù)據(jù)庫恢復(fù)有關(guān)的信息,這些信息則可以是系統(tǒng)200中使用的各個數(shù)據(jù)庫206所專用的。信息庫212按需與系統(tǒng)200中的其它組件作電子通訊208,以便更新和訪問信息庫212中的數(shù)據(jù)集。通過指定一個或多個數(shù)據(jù)庫數(shù)據(jù)集、指定用于恢復(fù)的整個數(shù)據(jù)庫206或指定如用于恢復(fù)的信息庫212中限定的組,可將要加以恢復(fù)的數(shù)據(jù)庫206列入恢復(fù)列表。所說的組可例如包括數(shù)據(jù)庫數(shù)據(jù)集組或其它類型的數(shù)據(jù)庫組。
數(shù)據(jù)庫系統(tǒng)200包括一個或多個CADS214,它們標(biāo)為CADS1至CADSN,以說明系統(tǒng)100中CADS214個數(shù)量上的變化。CADS214包含反映一段時間內(nèi)來自一個或多個日志204的變化數(shù)據(jù)的記錄。單個的CADS還可反映用于一個或多個數(shù)據(jù)庫206的更新。CADS214可在需要時與其它組件作電子通訊208以便恢復(fù)一個或多個數(shù)據(jù)庫206。
參照圖3,示出了用于在圖1的存儲器設(shè)備18內(nèi)進(jìn)行操作的多個可執(zhí)行模塊。當(dāng)然,本發(fā)明的模塊位于其中的存儲器設(shè)備18還可分布在本地和遠(yuǎn)程計算機(jī)工作站12上。在本文中用于進(jìn)行數(shù)據(jù)庫恢復(fù)的邏輯結(jié)構(gòu)稱為數(shù)據(jù)庫數(shù)據(jù)庫恢復(fù)工具300。數(shù)據(jù)庫恢復(fù)工具300可包括在如圖1所示的工作站12或服務(wù)器42上。就在工作站12或服務(wù)器42上實(shí)現(xiàn)數(shù)據(jù)庫恢復(fù)工具300并不需要進(jìn)行限制??捎枚喾N設(shè)備結(jié)構(gòu)來實(shí)現(xiàn)數(shù)據(jù)庫恢復(fù)工具300,工作站12和服務(wù)器42僅僅是實(shí)例。
數(shù)據(jù)庫恢復(fù)工具300可與一個或多個數(shù)據(jù)庫206集成并對數(shù)據(jù)庫206的物理恢復(fù)進(jìn)行管理。數(shù)據(jù)庫恢復(fù)工具300包括備份拷貝恢復(fù)工具302,用于讀取和恢復(fù)一個或多個備份拷貝210。在一個實(shí)施例中,備份拷貝恢復(fù)工具302從磁帶驅(qū)動器中讀取備份拷貝210。備份拷貝210可包含用于一個以上數(shù)據(jù)庫206的備份拷貝數(shù)據(jù)集。另外,單個的數(shù)據(jù)庫206可存在有多個備份拷貝210。在恢復(fù)多個數(shù)據(jù)庫206時,可能存在有多個備份拷貝210。如果需要一個以上的備份拷貝210,則備份拷貝恢復(fù)工具302最好并行地而不是順序地讀取這些備份拷貝210,以減少讀取時間。
數(shù)據(jù)庫恢復(fù)工具300還包括CADS管理器304,以讀取進(jìn)行恢復(fù)所需的CADS。同備份拷貝210一樣,并行地讀取CADS214,以減少讀取時間。在備份拷貝恢復(fù)工具302讀取備份拷貝210時,CADS管理器304最好并行地讀取CADS214。在讀取和恢復(fù)備份拷貝210時,CADS214被讀入存儲器18并根據(jù)需要作用于備份拷貝210。
并行地讀取備份拷貝210或CADS214的能力取決于可用的硬件刀件。如前該,每個備份拷貝210或CADS214均可存儲在諸如磁帶驅(qū)動器之類的存儲器上。如果磁帶存儲器對正在讀取的各個備份拷貝210和CADS214來說是可用的,則讀取時間是讀取最大備份拷貝210或CADS214的時間。如果存在有比備份拷貝210或CADS214少的驅(qū)動器,則讀取時間會顯著增加,因?yàn)?,讀取時間需要順序的讀取。
數(shù)據(jù)庫恢復(fù)工具300還包括恢復(fù)控制模塊305,它可確認(rèn)信息庫212中的要被加至恢復(fù)列表內(nèi)的數(shù)據(jù)庫數(shù)據(jù)集?;謴?fù)控制模塊305確定包含有進(jìn)行恢復(fù)所需數(shù)據(jù)的日志204、備份拷貝210以及CADS214。這種確定是以信息庫212中的數(shù)據(jù)為基礎(chǔ)的。用戶必須確保在正進(jìn)行恢復(fù)的所有數(shù)據(jù)庫206脫離數(shù)據(jù)庫管理系統(tǒng)202之前不開始進(jìn)行恢復(fù)。恢復(fù)列表中被分配給現(xiàn)役數(shù)據(jù)庫管理系統(tǒng)202的數(shù)據(jù)庫206將不進(jìn)行恢復(fù)。恢復(fù)工具300發(fā)送將不可恢復(fù)的數(shù)據(jù)庫206通知給用戶的消息。
圖3還說明了CADS工具306,該工具累積更新并創(chuàng)建CADS214。如前該,CADS工具306順序地讀取日志204中的日志數(shù)據(jù)集,以創(chuàng)建一個或多個CADS214。
數(shù)據(jù)庫恢復(fù)工具300還包括日志管理器308,它讀取日志204中的所需的日志數(shù)據(jù)集。日志管理器308生成一恢復(fù)數(shù)據(jù)流,該數(shù)據(jù)流是恢復(fù)一組特定數(shù)據(jù)庫206所需的一組日志記錄?;謴?fù)數(shù)據(jù)流中的記錄按創(chuàng)建時間順序合并。
數(shù)據(jù)庫恢復(fù)工具300還包括合并結(jié)束點(diǎn)工具310,它確定日志管理器308所讀取的各日志中的合并結(jié)束點(diǎn)。合并結(jié)束點(diǎn)表示其中日志記錄不再與恢復(fù)的數(shù)據(jù)庫合并并且必須被寫入溢出記錄的不完整日志中的時間點(diǎn)。因此,合并結(jié)束點(diǎn)對日志記錄從詳細(xì)記錄轉(zhuǎn)換至溢出記錄的點(diǎn)作標(biāo)記。如以下該,確定合并結(jié)束點(diǎn)對本發(fā)明是有用的。合并結(jié)束點(diǎn)工具310可將合并結(jié)束點(diǎn)提供給CADS工具306,以確定合并結(jié)束點(diǎn)在CADS214中的位置。
數(shù)據(jù)庫恢復(fù)工具300可包括日志記錄路由器(路由器)312,它用于處理來自恢復(fù)數(shù)據(jù)流的日志記錄并將這些記錄提供給數(shù)據(jù)庫更新管理器314。數(shù)據(jù)庫更新管理器314對該日志記錄所涉及的數(shù)據(jù)庫數(shù)據(jù)集進(jìn)行更新。
數(shù)據(jù)庫恢復(fù)工具300還包括映像拷貝和恢復(fù)工具316,它用于創(chuàng)建被恢復(fù)的數(shù)據(jù)庫318。映像拷貝和恢復(fù)工具316接收來自備份拷貝恢復(fù)工具302的備份拷貝210并將備份拷貝210用作創(chuàng)建一個或多個被恢復(fù)的數(shù)據(jù)庫318的基礎(chǔ)。映像拷貝和恢復(fù)工具316還接收來自CADS管理器304的數(shù)據(jù)集。映像拷貝和恢復(fù)工具316按適當(dāng)?shù)捻樞騾f(xié)調(diào)來自CADS214的數(shù)據(jù)集的應(yīng)用,以創(chuàng)建被恢復(fù)的數(shù)據(jù)庫318。在該映像拷貝和恢復(fù)工具業(yè)已創(chuàng)建并被寫入被恢復(fù)的數(shù)據(jù)庫318之后,數(shù)據(jù)庫更新管理器314就將日志數(shù)據(jù)集合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318的適當(dāng)位置處。
參照圖4,示出了用于多個日志204的時間線圖,該圖在總體上被表示為標(biāo)號400。圖4所示的日志204處在共享環(huán)境中,其中兩個或多個數(shù)據(jù)庫管理系統(tǒng)202正在訪問一單個數(shù)據(jù)庫206。日志204持續(xù)一段時間直至數(shù)據(jù)庫出現(xiàn)故障401。每個日志204均含有時間線上所示并由相應(yīng)數(shù)據(jù)庫管理系統(tǒng)202所執(zhí)行的一系列更新402。日志204因共享環(huán)境而不使所有的日志記錄可用,從而是不完整的日志數(shù)據(jù)集。因此,不知道是中斷還是提交了某些更新402。
合并結(jié)束點(diǎn)被標(biāo)記為404并且是將可被合并的詳細(xì)記錄406與不能被合并的溢出記錄408分隔開的時間點(diǎn)。如圖4所示,合并結(jié)束點(diǎn)404左側(cè)的所有日志記錄均為詳細(xì)記錄406,右側(cè)的所有日志記錄均為溢出記錄408。在合并結(jié)束點(diǎn)404處,變化累積過程停止將日志記錄寫入詳細(xì)記錄406并且必須在此后將日志記錄寫入溢出記錄408。
在特定的時間,執(zhí)行變化累積過程410以創(chuàng)建CADS214。將被確認(rèn)為被提交了的更新402寫入CADS214中的詳細(xì)記錄406內(nèi)。但是,某些更新402未被確認(rèn)為被提交了,從而不能與其它記錄合并。可為不完整的日志集執(zhí)行變化累積過程410,但未被確認(rèn)的更新402被寫入溢出記錄408并且是不完整CADS214的一部分。正如在本技術(shù)中周知的那樣,假定相關(guān)的日志記錄變?yōu)榭捎玫?,則溢出記錄408可在隨后的變化累積過程中加以讀取并與其它記錄相合并。
參照圖5,示出了方法步驟500的順序,以說明本發(fā)明方法的一個實(shí)施例。在啟動這一方法之前,有一個或多個數(shù)據(jù)庫206出故障。該恢復(fù)方法在步驟502開始啟動。啟動包括例如通過創(chuàng)建一獨(dú)立的地址空間去管理備份數(shù)據(jù)集、CADS和日志數(shù)據(jù)集而使數(shù)據(jù)庫恢復(fù)工具準(zhǔn)備操作、進(jìn)行內(nèi)部系統(tǒng)檢查、初始化該地址的存儲器和設(shè)備等。由圖3所示的數(shù)據(jù)庫恢復(fù)工具300來執(zhí)行進(jìn)行恢復(fù)的命令。一旦啟動步驟502開始,就在不用用戶干預(yù)的情況下自動地執(zhí)行方法500的其余步驟,例外的是如下該那樣將備份拷貝210和CADS214裝進(jìn)輸入設(shè)備26。
在步驟504中,恢復(fù)工具300建立一恢復(fù)列表,它是要加以恢復(fù)的數(shù)據(jù)庫206的列表。在一個實(shí)施例中,當(dāng)在步驟504中建立恢復(fù)列表時,該列表就與發(fā)出恢復(fù)命令的邏輯終端相關(guān)聯(lián)。
當(dāng)恢復(fù)工具102接收到命令而開始進(jìn)行恢復(fù)時,就在步驟506中繼續(xù)恢復(fù)。恢復(fù)工具300進(jìn)行檢查以判斷當(dāng)前是否在進(jìn)行恢復(fù)或者是否是不能找到的希望恢復(fù)的列表。如果是這樣的話,則發(fā)出出錯信息并中斷恢復(fù)。否則,繼續(xù)進(jìn)行恢復(fù)?;謴?fù)工具300通過確保各數(shù)據(jù)庫206均處于允許被恢復(fù)的狀態(tài)而確認(rèn)恢復(fù)列表并且還確定為恢復(fù)這些被確認(rèn)的條目所需的資源。
在步驟508中,備份拷貝恢復(fù)工具302并行地讀取所需的備份拷貝210。CADS管理器304同時并行地讀取所需的CADS214。并行地讀取備份拷貝210和CADS214取決于諸如磁帶驅(qū)動器之類的可用的輸入設(shè)備26的數(shù)量。在一個實(shí)施例中,用戶可以指定要加以使用的輸入設(shè)備26的數(shù)量。
在用單個CADS214上的記錄恢復(fù)多個數(shù)據(jù)庫210時,僅將CADS214讀入存儲器18一次。然后,從存儲器18中檢索出恢復(fù)指令數(shù)據(jù)庫210所需的記錄。這就消除了為各數(shù)據(jù)庫210重復(fù)讀取單個CADS214的步驟。
在共享環(huán)境中,CADS214是不完整的并包含有不可合并的溢出記錄408。為了加快恢復(fù),CADS管理器304僅讀取詳細(xì)記錄406并忽略溢出記錄408。這樣,由于僅讀取詳細(xì)記錄406,恢復(fù)工作不需執(zhí)行變化累積過程以完成CADS。詳細(xì)記錄404反映了合并結(jié)束點(diǎn)404范圍內(nèi)的更新402并被讀入存儲器18。
在步驟510中,用映像拷貝和恢復(fù)工具316將備份拷貝210寫入相應(yīng)的被恢復(fù)的數(shù)據(jù)庫318。通過這種方式,備份拷貝210用作創(chuàng)建被恢復(fù)的數(shù)據(jù)庫318的起始點(diǎn)。在用映像拷貝和恢復(fù)工具316寫備份拷貝210時,映像拷貝和恢復(fù)工具316確定CADS214的下一個詳細(xì)記錄404在被恢復(fù)的數(shù)據(jù)庫318內(nèi)的位置。CADS214的每個詳細(xì)記錄404均具有用于在被恢復(fù)的數(shù)據(jù)庫318內(nèi)順序組織的標(biāo)識。映像拷貝和恢復(fù)工具316將備份拷貝210順序地寫入被恢復(fù)的數(shù)據(jù)庫318,直至需要來自CADS214的下一個詳細(xì)記錄404。在將詳細(xì)記錄404合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318之后,映像拷貝和恢復(fù)工具316確定下一個詳細(xì)記錄404的位置。
在步驟512中,映像拷貝和恢復(fù)工具316查詢CADS管理器304是否已讀取了被恢復(fù)的數(shù)據(jù)庫318所需的具體詳細(xì)記錄404。在詳細(xì)記錄406被CADS管理器304讀入存儲器18時,就按需將記錄404發(fā)送至映像拷貝和恢復(fù)工具316。如果在對詳細(xì)記錄406進(jìn)行請求時存在延遲,則可將某些或全部的詳細(xì)記錄406存儲在虛擬存儲器25上,以便長期保存。
在步驟516,如果業(yè)已讀取了所請求的詳細(xì)記錄404,則將其發(fā)送給映像拷貝和恢復(fù)工具316并使其按時間順序與被恢復(fù)的數(shù)據(jù)庫318相合并。
在步驟514中,如果尚未讀取所請求的詳細(xì)記錄404,則將該查詢保存在存儲器18內(nèi)。當(dāng)CADS管理器304讀取詳細(xì)記錄404時,就記下該查詢,并將詳細(xì)記錄406發(fā)送給映像拷貝和恢復(fù)工具316,以使該詳細(xì)記錄合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318。
應(yīng)該理解,盡管就圖5的流程圖以線性的方式說明了方法500,但卻可以同時執(zhí)行步驟508、510、512、514和516。因此,在將備份拷貝210寫入被恢復(fù)的數(shù)據(jù)庫318時,就可將詳細(xì)記錄406讀出并合并到被恢復(fù)的數(shù)據(jù)庫318中。
在步驟518中,將備份拷貝210和CADS214合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318。日志管理器308將一個或多個日志204讀入存儲器18,合并結(jié)束點(diǎn)工具310確定合并結(jié)束點(diǎn)404在日志204內(nèi)的位置。在共享環(huán)境中,可能要讀取一個以上的日志204。并行地讀取日志204以減少讀取時間。并行讀取日志204取決于可用的輸入設(shè)備26的數(shù)量。因此,日志讀取時間和讀取最長日志204所需時間一樣長。
日志管理器308導(dǎo)出合并結(jié)束點(diǎn)404之后的更新402,溢出記錄408中反映了這些更新402。日志管理器308能判斷出是否根據(jù)對日志204的讀取提交了溢出記錄408中的更新402。在恢復(fù)數(shù)據(jù)流中將更新402發(fā)送給路由器312,然后將更新402發(fā)送給數(shù)據(jù)庫更新管理器314。
在步驟520中,日志記錄路由器312驅(qū)動數(shù)據(jù)庫更新管理器314,以便按時間順序?qū)⒏?02合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318。在映像拷貝和恢復(fù)工具316完成了它對被恢復(fù)的數(shù)據(jù)庫318的寫操作之后,數(shù)據(jù)庫恢復(fù)工具300僅能使數(shù)據(jù)庫更新管理器314進(jìn)行操作。在合并結(jié)束點(diǎn)404之后的每個提交的更新均予以考慮并被合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318。在讀取日志204的同時將來自溢出記錄408的更新402合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318,以便進(jìn)一步加快恢復(fù)過程。因此,在確認(rèn)出提交了更新402時,就立即將它們與被恢復(fù)的數(shù)據(jù)庫318相合并,因?yàn)?,從日?04中讀出后續(xù)的更新402。因此,被恢復(fù)的數(shù)據(jù)庫318是出故障之前的數(shù)據(jù)庫206的精確反映。
在步驟522中,方法500結(jié)束。
本發(fā)明的主要優(yōu)點(diǎn)是并行地執(zhí)行多個過程。將備份拷貝210和CADS214并行地讀入存儲器以便同時進(jìn)行處理。所以,可在與將備份拷貝210寫入被恢復(fù)的數(shù)據(jù)庫318的同時立即使用詳細(xì)記錄406。在不立即需要詳細(xì)記錄406的情況下,可將它們移至長期存儲器中。此外,將數(shù)據(jù)庫恢復(fù)所需的各個CADS214讀入存儲器一次,而不管多個數(shù)據(jù)庫206是如何具有CADS214中的記錄的。還并行而不是順序地讀取日志204,以減少日志讀取時間量。因此,用于恢復(fù)一個或多個數(shù)據(jù)庫的經(jīng)過的時間是用于最大CADS214或最大備份拷貝210的讀取時間;加上寫入最大的被恢復(fù)的數(shù)據(jù)庫318的時間;減去在寫入最大的被恢復(fù)的數(shù)據(jù)庫318的同時讀取CADS214和備份拷貝210的重疊時間;加上用于最大日志204的讀取時間;加上將來自日志204的更新402合并至被恢復(fù)的數(shù)據(jù)庫318;以及減去讀取日志204和合并更新402的重疊時間。
本發(fā)明的另一個主要優(yōu)點(diǎn)是根據(jù)不完整的CADS214直接進(jìn)行數(shù)據(jù)庫恢復(fù)。通過忽略CADS214中的溢出記錄并依靠日志204的后續(xù)讀數(shù),可將所有提交的更新402合并進(jìn)被恢復(fù)的數(shù)據(jù)庫318。這就消除了執(zhí)行變化累積過程完成各個不完整CADS214的耗時要求。因此,可顯著地加快共享環(huán)境中數(shù)據(jù)庫206的恢復(fù)。
在不脫離本發(fā)明實(shí)質(zhì)或本質(zhì)特征的情況下,可用其它特定形式來實(shí)施本發(fā)明。上述實(shí)施例應(yīng)被看作是在所有方面僅是說明性的并且不是限制性的。所以,本發(fā)明的范圍是由后附權(quán)利要求而不是由前述說明所指明的。該權(quán)利要求的等價形式范圍內(nèi)的變化形式均包括在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于恢復(fù)出故障的數(shù)據(jù)庫數(shù)據(jù)集的設(shè)備,該設(shè)備包括一存儲器設(shè)備,它存儲有可執(zhí)行的模塊,該模塊包括恢復(fù)工具,該工具帶有一備份拷貝恢復(fù)工具,它配置成讀取和恢復(fù)該數(shù)據(jù)庫數(shù)據(jù)集的備份拷貝。一變化累積管理器,它配置成與讀取和恢復(fù)備份拷貝相并行地讀取變化累積數(shù)據(jù)集,以獲得詳細(xì)記錄;以及一映像拷貝恢復(fù)工具,它配置成在讀取和恢復(fù)前述備份拷貝期間將詳細(xì)記錄作用于該備份拷貝,以便創(chuàng)建被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
2.如權(quán)利要求1的設(shè)備,其中,該備份拷貝恢復(fù)工具還配置成并行地讀取和恢復(fù)多個備份拷貝。
3.如權(quán)利要求1的設(shè)備,其中,該變化累積管理器還配置成并行地讀取多個變化累積數(shù)據(jù)集以導(dǎo)出詳細(xì)記錄。
4.如權(quán)利要求1的設(shè)備,其特征在于,該恢復(fù)工具還包括一合并結(jié)束點(diǎn)工具,它配置成確定反映日志中詳細(xì)記錄和溢出記錄分隔的合并結(jié)束點(diǎn),。
5.如權(quán)利要求1的設(shè)備,其特征在于,該恢復(fù)工具還包括一日志管理器,它配置成讀取日志以導(dǎo)出合并結(jié)束點(diǎn)之后的更新;以及一數(shù)據(jù)庫更新管理器,它配置成將上述更新用于被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
6.如權(quán)利要求5的設(shè)備,其特征在于,該日志管理器還配置成并行讀取多個日志,以導(dǎo)出合并結(jié)束點(diǎn)之后的更新。
7.如權(quán)利要求5的設(shè)備,其特征在于,該數(shù)據(jù)庫更新管理器還配置成在恢復(fù)了備份拷貝之后使用該更新。
8.權(quán)利要求1的設(shè)備,其特征在于,該設(shè)備還包括一虛擬存儲器,并且,該變化累積管理器還配置成將詳細(xì)記錄的至少一部分存儲到該虛擬存儲器內(nèi)。
9.如權(quán)利要求1的設(shè)備,其特征在于,該備份拷貝恢復(fù)工具配置成在讀取和恢復(fù)備份拷貝期間將對與數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)的詳細(xì)紀(jì)錄的查詢發(fā)送給變化累積管理器。
10.如權(quán)利要求9的設(shè)備,其特征在于,該變化累積管理器配置成如果詳細(xì)記錄業(yè)尚未被變化累積管理器所讀取則保存查詢并且配置成在變化累積管理器業(yè)已讀取了詳細(xì)記錄的情況下將該詳細(xì)記錄發(fā)送給映像拷貝恢復(fù)過程。
11.一種用于恢復(fù)出現(xiàn)故障的數(shù)據(jù)庫數(shù)據(jù)集的方法,該方法包括讀取和恢復(fù)數(shù)據(jù)庫數(shù)據(jù)集的備份拷貝;與讀取和恢復(fù)備份拷貝相并行地讀取變化累積數(shù)據(jù)集,以導(dǎo)出與數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)的詳細(xì)記錄;以及在讀取和恢復(fù)備份拷貝期間將該詳細(xì)記錄應(yīng)用于備份拷貝,以創(chuàng)建被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
12.如權(quán)利要求11的方法,其特征在于,該方法還包括并行地讀取和恢復(fù)多個備份拷貝,其中該備份拷貝與相應(yīng)的出現(xiàn)故障的數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)。
13.如權(quán)利要求11的方法,其特征在于,該方法還包括并行地讀取多個變化累積數(shù)據(jù)集以導(dǎo)出詳細(xì)記錄。
14.如權(quán)利要求11的方法,其特征在于,該方法還包括讀取一日志以導(dǎo)出合并結(jié)束點(diǎn)之后的更新并將這些更新用于被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
15.如權(quán)利要求14的方法,其特征在于,在恢復(fù)了備份拷貝之后執(zhí)行讀取日志和應(yīng)用更新。
16.如權(quán)利要求11的方法,其特征在于,該方法還包括并行讀取多個日志以導(dǎo)出合并結(jié)束點(diǎn)之后的更新并將這些更新應(yīng)用于被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
17.如權(quán)利要求11的方法,其特征在于,該方法還包括確定該合并結(jié)束點(diǎn),其中該合并結(jié)束點(diǎn)反映日志中詳細(xì)記錄與溢出記錄的分隔。
18.如權(quán)利要求11的方法,其特征在于,該方法還包括將該詳細(xì)記錄的至少一部分存儲到一虛擬存儲器內(nèi)。
19.如權(quán)利要求11的方法,其特征在于,該方法還包括生成一查詢以提示與數(shù)據(jù)庫數(shù)據(jù)集相關(guān)的詳細(xì)記錄。
20.如權(quán)利要求19的方法,其特征在于,該方法還包括如果尚未讀取詳細(xì)記錄則保存查詢并在業(yè)已讀出了詳細(xì)記錄的情況下通過將詳細(xì)記錄應(yīng)用于備份拷貝而對該查詢進(jìn)行響應(yīng)。
21.一種計算機(jī)可讀介質(zhì),其上存儲有計算機(jī)可執(zhí)行的指令以執(zhí)行用于恢復(fù)出故障的數(shù)據(jù)庫數(shù)據(jù)的方法,該方法包括讀出和恢復(fù)數(shù)據(jù)庫數(shù)據(jù)集的備份拷貝;與讀出和恢復(fù)備份拷貝相并行地讀取變化累積數(shù)據(jù)集以導(dǎo)出與數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)的詳細(xì)記錄;以及在讀取和恢復(fù)備份拷貝期間同時將該詳細(xì)記錄應(yīng)用于備份拷貝以創(chuàng)建被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
22.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括并行地讀取和恢復(fù)多個備份拷貝,其中,該備份拷貝與相應(yīng)的出現(xiàn)故障的數(shù)據(jù)庫數(shù)據(jù)集相關(guān)聯(lián)。
23.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括并行地讀取多個變化累積數(shù)據(jù)集以導(dǎo)出詳細(xì)記錄。
24.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括讀取一日志,以導(dǎo)出合并結(jié)束點(diǎn)之后的更新并將這些更新用于被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
25.如權(quán)利要求24的計算機(jī)可讀介質(zhì),其特征在于,在恢復(fù)了備份拷貝之后執(zhí)行讀取日志和應(yīng)用更新。
26.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括并行讀取多個日志以導(dǎo)出合并結(jié)束點(diǎn)之后的更新并將這些更新應(yīng)用于被恢復(fù)的數(shù)據(jù)庫數(shù)據(jù)集。
27.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括確定該合并結(jié)束點(diǎn),其中該合并結(jié)束點(diǎn)反映日志中詳細(xì)記錄與溢出記錄的分隔。
28.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括將該詳細(xì)記錄的至少一部分存儲到一虛擬存儲器內(nèi)。
29.如權(quán)利要求21的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括生成一查詢以提示與數(shù)據(jù)庫數(shù)據(jù)集相關(guān)的詳細(xì)記錄。
30.如權(quán)利要求29的計算機(jī)可讀介質(zhì),其特征在于,該方法還包括如果尚未讀取詳細(xì)記錄則保存查詢并在業(yè)已讀出了詳細(xì)記錄的情況下通過使詳細(xì)記錄作用于備份拷貝而對該查詢進(jìn)行響應(yīng)。
全文摘要
本發(fā)明涉及用于在一個或多個數(shù)據(jù)庫數(shù)據(jù)集出現(xiàn)故障期間加快恢復(fù)時間的恢復(fù)工具設(shè)備。備份拷貝恢復(fù)工具并行讀取數(shù)據(jù)庫數(shù)據(jù)集的備份拷貝。同時,變化累積管理器并行讀取一個或多個CADS。變化累積管理器僅讀取業(yè)已提交的詳細(xì)記錄并忽略溢出記錄,以消除為進(jìn)行恢復(fù)而對完成各個不完整的CADS的需要。日志管理器讀取一個或多個日志,以獲取溢出記錄中在合并結(jié)束點(diǎn)之后的更新。
文檔編號G06F11/14GK1317742SQ01116278
公開日2001年10月17日 申請日期2001年4月9日 優(yōu)先權(quán)日2000年4月10日
發(fā)明者D·W·穆爾 申請人:國際商業(yè)機(jī)器公司