專利名稱:數(shù)據(jù)恢復(fù)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對已經(jīng)丟失的數(shù)據(jù)進(jìn)行恢復(fù)的系統(tǒng)和方法。更具體地, 本發(fā)明的實(shí)施例涉及在數(shù)據(jù)庫鏡像環(huán)境下進(jìn)行數(shù)據(jù)恢復(fù)的系統(tǒng)和方法。
背景技術(shù):
在日常生活和商業(yè)環(huán)境中,計(jì)算機(jī)網(wǎng)絡(luò)無處不在。除了廣泛的互聯(lián)網(wǎng)應(yīng)用之外,局域網(wǎng)(LANs)允許用戶共享計(jì)算機(jī)服務(wù)。很多企業(yè)實(shí)體在其機(jī) 構(gòu)內(nèi)部使用LANs,并通過網(wǎng)絡(luò)為用戶提供數(shù)據(jù)的存取。對計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)的依賴就產(chǎn)生了提高數(shù)據(jù)可用性和可靠性的需 求。很多商業(yè)實(shí)體將幾乎所有的商業(yè)數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)網(wǎng)絡(luò)中,并且網(wǎng)絡(luò)用 戶希望在任何允許時(shí)間內(nèi)都擁有不間斷的數(shù)據(jù)存取。而這種不間斷的數(shù)據(jù)存 取的需求則需要具有功能增強(qiáng)的軟件和硬件的支持。因?yàn)榫W(wǎng)絡(luò)中存儲(chǔ)數(shù)據(jù)的 數(shù)量、網(wǎng)絡(luò)中數(shù)據(jù)存取能力的需求都在不斷增長,所以保護(hù)數(shù)據(jù)不受如系統(tǒng) 故障、文件損壞和病毒入侵等意外事件的影響就變得越來越困難。一般而言,保護(hù)數(shù)據(jù)不受潛存的破壞性事件的影響,都由用以備份數(shù)據(jù) 的軟件以及用以存儲(chǔ)所備份數(shù)據(jù)的安全硬件共同完成。隨著需要保存的數(shù)據(jù) 量增加,數(shù)據(jù)備份操作就變得愈加復(fù)雜。例如,千兆字節(jié)的數(shù)據(jù)(gigabytes of data)就不能從原始位置快速傳輸?shù)絺浞菸恢?。此外,對于持續(xù)的數(shù)據(jù)存取 是絕對必要的環(huán)境而言,在進(jìn)行備份時(shí)使得數(shù)據(jù)變成不可用就不是可行的選 擇。雖然對大批量數(shù)據(jù)進(jìn)行備份時(shí)己經(jīng)成為問題,但這卻不是僅存的與典型 的數(shù)據(jù)備份系統(tǒng)相關(guān)的問題。網(wǎng)絡(luò)用戶和管理員可能還希望對不同類型的數(shù) 據(jù)進(jìn)行備份。在文件備份之外,網(wǎng)絡(luò)用戶可能還想備份應(yīng)用(程序)和服務(wù), 而對應(yīng)用和服務(wù)的備份則頗有難度。例如,當(dāng)啟動(dòng)備份時(shí),應(yīng)用和服務(wù)通常 都含有打開文件,而此類打開文件一般不能被有效地或可靠地備份,這些文 件在備份操作時(shí)經(jīng)常會(huì)被跳過。其結(jié)果就是,往往需要額外的備份應(yīng)用來協(xié)
同管理在啟動(dòng)文件系統(tǒng)備份時(shí)被跳過的應(yīng)用和服務(wù)的備份操作。與數(shù)據(jù)備份有關(guān)的另外的問題涉及到當(dāng)數(shù)據(jù)被傳輸?shù)絺浞菸恢脮r(shí),備份 數(shù)據(jù)的跟蹤方式。特別地,當(dāng)數(shù)據(jù)被備份時(shí),備份副本被移到新的位置,此 時(shí)很有必要形成一個(gè)有關(guān)數(shù)據(jù)是怎樣被存儲(chǔ)的記錄,以利于對存儲(chǔ)數(shù)據(jù)進(jìn)行 存取。 一般而言,備份系統(tǒng)包括記錄每個(gè)備份文件或應(yīng)用的精確位置的數(shù)據(jù) 庫。當(dāng)用戶希望從備份系統(tǒng)中對文件進(jìn)行定位或恢復(fù)時(shí),數(shù)據(jù)庫在備份介質(zhì) 中文件的存儲(chǔ)位置對文件進(jìn)行定位。當(dāng)對備份數(shù)據(jù)的位置進(jìn)行跟蹤時(shí),典型的備份軟件系統(tǒng)僅僅將數(shù)據(jù)放到 備份位置并在索引中對其位置進(jìn)行跟蹤。更具智能的數(shù)據(jù)庫軟件系統(tǒng)則具有 在備份數(shù)據(jù)時(shí)對數(shù)據(jù)進(jìn)行分類的功能,這樣數(shù)據(jù)就可以被智能地存儲(chǔ)起來。 例如,較為復(fù)雜的數(shù)據(jù)庫軟件系統(tǒng)可以在同一介質(zhì)中存儲(chǔ)相似文件的備份, 用此方式分類和存儲(chǔ)數(shù)據(jù)將允許更有效的數(shù)據(jù)存儲(chǔ)和恢復(fù)。典型備份軟件系統(tǒng)的另一個(gè)缺點(diǎn)是,在網(wǎng)絡(luò)中它們不能進(jìn)行數(shù)據(jù)的重新 定位,或者在網(wǎng)絡(luò)中不能有多于一個(gè)可用的數(shù)據(jù)副本。雖然備份軟件系統(tǒng)從 網(wǎng)絡(luò)中的所有用戶處收集數(shù)據(jù),但數(shù)據(jù)本身被認(rèn)為是處在網(wǎng)絡(luò)中的某個(gè)單一 位置中,而不是與其他位置交叉參照。當(dāng)對網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行備份時(shí),上述 冗余和交叉參照都不能實(shí)現(xiàn)。備份數(shù)據(jù)的存取是數(shù)據(jù)庫備份系統(tǒng)的配置中需要考慮的重要因素。備份 數(shù)據(jù)的目的之一就是以一種方式保存數(shù)據(jù),以備當(dāng)文件損壞或丟失時(shí)找回備 份副本和恢復(fù)文件之用。當(dāng)一個(gè)文件損壞或丟失后,用戶向備份服務(wù)器請求 文件的備份副本,備份服務(wù)器隨后利用文件索引和介質(zhì)數(shù)據(jù)庫中存儲(chǔ)的位置 對此文件定位,恢復(fù)該文件,并令該文件變成對用戶可用。
為了更進(jìn)一步明確本發(fā)明的實(shí)施例的上述和其他特點(diǎn),將參照附圖中示 出的具體實(shí)施例對本發(fā)明進(jìn)行更具體描述。應(yīng)該理解這些附圖僅僅是示出了 本發(fā)明的典型實(shí)施例,而不是用以限定其范圍。附圖的繪制沒有按比例進(jìn)行。利用下面的附圖,結(jié)合附加的特點(diǎn)和細(xì)節(jié)對本發(fā)明進(jìn)行描述和解釋,附 圖中
圖1示出在網(wǎng)絡(luò)中備份和恢復(fù)文件系統(tǒng)數(shù)據(jù)的系統(tǒng)示例; 圖2示出在數(shù)據(jù)庫鏡像環(huán)境中進(jìn)行數(shù)據(jù)庫定位的系統(tǒng)示例; 圖3示出在數(shù)據(jù)庫鏡像環(huán)境中對任意數(shù)量的數(shù)據(jù)庫進(jìn)行鏡像配置的系統(tǒng) 示例;圖4示出數(shù)據(jù)庫恢復(fù)系統(tǒng)示例;圖5是一個(gè)流程圖,用以描述通過從數(shù)據(jù)庫請求目標(biāo)數(shù)據(jù)而恢復(fù)數(shù)據(jù)的 程序。
具體實(shí)施方式
I.數(shù)據(jù)庫操作系統(tǒng)示例圖1顯示一個(gè)適用于本發(fā)明實(shí)施例的操作環(huán)境。在圖1中舉例說明文件系統(tǒng)數(shù)據(jù)備份和恢復(fù)系統(tǒng)示例("DBRS") 100,其通常的功能是在存儲(chǔ)位置 復(fù)制在線文件系統(tǒng)數(shù)據(jù),以及保存有關(guān)該數(shù)據(jù)的位置和過時(shí)的跟蹤信息。如 果數(shù)據(jù)的在線副本丟失或損壞了, DBRS100可以再生該數(shù)據(jù)。當(dāng)運(yùn)行 DBRSIOO的網(wǎng)絡(luò)出現(xiàn)故障時(shí),DBRS100可以再生所有的DBRS100文件系統(tǒng),將它們恢復(fù)到其當(dāng)初被寫入存儲(chǔ)時(shí)各自的原始結(jié)構(gòu)。DBRS100的示例性實(shí)施例包括三個(gè)基本組件備份服務(wù)器102, 一個(gè)或 多個(gè)客戶機(jī)104、 105、 106、 107和108,以及數(shù)據(jù)的備份巻110。其中備份服 務(wù)器102和客戶機(jī)104、 105、 106、 107和108是配有運(yùn)行DBRS100操作所需軟 件的實(shí)體。備份服務(wù)器102包括編配和管理DBRS100功能的程序和服務(wù),客 戶機(jī)104、 105、 106、 107、禾口108包括執(zhí)行DBRS100功能的程序和服務(wù)。備份服務(wù)器102為其客戶機(jī)組,例如客戶機(jī)104、 105、 106、 107和108管 理數(shù)據(jù)。例如,客戶機(jī)104、 105、 106、 107和108代表在網(wǎng)絡(luò)上傳輸文件以 進(jìn)行備份的機(jī)器。備份服務(wù)器102可以結(jié)合不同的備份組112、 114和116來編 配客戶機(jī)/數(shù)據(jù)。備份組是指被作為一個(gè)組備份到一起的客戶機(jī)和/或數(shù)據(jù)組。 單個(gè)客戶機(jī)可以被包括到多個(gè)備份組中,如圖示的備份組112和備份組114之 中。DBRS100依靠數(shù)據(jù)跟蹤信息來管理自客戶機(jī)104、 105、 106、 107和108 中備份的數(shù)據(jù),該數(shù)據(jù)跟蹤信息在圖1中由備份服務(wù)器102的文件索引118和 介質(zhì)數(shù)據(jù)庫120表示。文件索引118和介質(zhì)數(shù)據(jù)庫120中的輸入項(xiàng)保存內(nèi)容和
位置信息,該內(nèi)容和位置信息用以描述已經(jīng)在DBRS100環(huán)境中備份的所有數(shù) 據(jù)(客戶機(jī)的機(jī)器和文件這兩者)。文件備份服務(wù)器102的文件索引118是對應(yīng)每個(gè)客戶機(jī)而編配的備份文 件的瀏覽目錄。網(wǎng)絡(luò)中每個(gè)客戶機(jī)的每個(gè)備份文件都在索引中被列出。文件 索引118的輸入項(xiàng)包括文件信息,例如文件類型、文件備份時(shí)間以及和該文 件有關(guān)的例如存放(hosting)初始文件的客戶機(jī)等其他信息。因?yàn)橐粋€(gè)文件 可以被多次備份,而那些備份副本可以存儲(chǔ)在多個(gè)位置,文件索引118和介 質(zhì)數(shù)據(jù)庫120中針對客戶機(jī)文件的輸入可以包括有關(guān)每一次文件備份的備份 位置和備份時(shí)間的信息。文件索引118和介質(zhì)數(shù)據(jù)庫120中與某一特定文件有 關(guān)的多個(gè)備份位置和多個(gè)備份時(shí)間的信息可以使用戶識別出待檢索文件的 某一特定版本。有關(guān)一個(gè)文件的多次備份的輸入項(xiàng)信息可以在文件索引118 中保留由管理員決定的任意長的時(shí)間。當(dāng)文件索引118對單個(gè)文件進(jìn)行跟蹤時(shí),介質(zhì)數(shù)據(jù)庫120對文件存儲(chǔ)的位 置進(jìn)行跟蹤。換句話說,介質(zhì)數(shù)據(jù)庫120中包括有關(guān)介質(zhì)存儲(chǔ)位置的參考信 息。在運(yùn)行中,每次當(dāng)備份組112、 114或116被備份到DBRS100的存儲(chǔ)巻上 時(shí),介質(zhì)數(shù)據(jù)庫120接收一個(gè)輸入項(xiàng)。正如文件索引118的輸入項(xiàng)一般,其輸 入項(xiàng)將會(huì)一直保留在介質(zhì)數(shù)據(jù)庫120中,直到管理員刪除該輸入項(xiàng)。如果其 對應(yīng)的數(shù)據(jù)己經(jīng)被重寫,介質(zhì)數(shù)據(jù)庫120中的輸入項(xiàng)也是可以刪除的。當(dāng)獲得有關(guān)數(shù)據(jù)的位置信息時(shí),數(shù)據(jù)可以以不同的方式存儲(chǔ)。例如,數(shù) 據(jù)可以存儲(chǔ)在例如磁帶驅(qū)動(dòng)器,磁盤或可擦除磁盤等可以被服務(wù)器102存取 的設(shè)備的介質(zhì)巻上,如圖1所示,或者也可以以遠(yuǎn)程服務(wù)器的方式進(jìn)行存取。 在一個(gè)備份數(shù)據(jù)系統(tǒng)示例中,數(shù)據(jù)被存儲(chǔ)在如備份巻110以及備份設(shè)備126、 128、 130和132等設(shè)備巻實(shí)例上, 一個(gè)在設(shè)備和巻上存儲(chǔ)數(shù)據(jù)的實(shí)例是在磁 盤陣列中存儲(chǔ)數(shù)據(jù),其中數(shù)據(jù)被分組存儲(chǔ)到各磁盤上。設(shè)備和巻上存儲(chǔ)數(shù) 據(jù)的另一個(gè)實(shí)例是在磁帶驅(qū)動(dòng)器中存儲(chǔ)數(shù)據(jù),其中數(shù)據(jù)被分組存儲(chǔ)到預(yù)定的 各磁帶巻上。在設(shè)備和巻上存儲(chǔ)數(shù)據(jù)的最后一個(gè)實(shí)例是在遠(yuǎn)程服務(wù)器中存儲(chǔ) 數(shù)據(jù),其中數(shù)據(jù)被分組存儲(chǔ)到服務(wù)器的各硬盤中。雖然這些實(shí)例有助于了解 設(shè)備和巻的可能配置,但是DBRS100在設(shè)備和巻上存儲(chǔ)數(shù)據(jù)的能力并非局限 在給出的實(shí)例內(nèi)。最普遍的看法是,備份設(shè)備126、 128、 130和132給出的是 數(shù)據(jù)存儲(chǔ)方式的概念模型,而這些數(shù)據(jù)存儲(chǔ)方式并非局限于特定的系統(tǒng)或設(shè) 備°DBRS100中的備份設(shè)備126、 128、 130和132的效用因備份設(shè)備126、 128、 130和132可以存儲(chǔ)各種不同類型數(shù)據(jù)的能力而進(jìn)一步增強(qiáng)。具體來說,備份 設(shè)備126、 128、 130和132可以包括任何文件類型的數(shù)據(jù)。例如,圖形文件、 程序執(zhí)行文件和文檔文件的備份副本可以在備份設(shè)備126、 128、 130和132中一起存儲(chǔ)。備份設(shè)備126、 128、 130和132的一個(gè)基本特性是,備份設(shè)備126、 128、 130和132可以加速DBRS100中備份文件的檢索。例如,當(dāng)用戶請求對備份文 件進(jìn)行恢復(fù)時(shí),如果文件索引和文件的介質(zhì)數(shù)據(jù)庫輸入項(xiàng)包含高度具體的位 置信息,則DBRS100可以很快地檢索文件,上述位置信息包含有關(guān)備份設(shè)備 126、 128、 130和132的參考信息,以及所使用的具體介質(zhì)例如,磁帶,CD, DVD或用來存儲(chǔ)文件的其他介質(zhì)。關(guān)于備份設(shè)備126、 128、 130和132的許多特性,包括備份,DBRS100最 初的配置是獨(dú)立執(zhí)行各功能。不過,管理員有許多控制DBRS100功能的權(quán)限, 如管理員可以針對不同的客戶機(jī)和/或文件特性來隔離存儲(chǔ)文件,以及可以判 定在什么時(shí)候備份巻已經(jīng)被不再使用并且應(yīng)該被刪除。例如,自備份生成起, 經(jīng)過一個(gè)預(yù)定時(shí)段之后,管理員可以配置DBRS 100以把備份巻從介質(zhì)數(shù)據(jù)庫 120刪除。管理員還可以定義備份組112、 114、和116,其可以包括一個(gè)或多 個(gè)客戶機(jī)及其文件、目錄、或文件系統(tǒng)、或客戶機(jī)上所有文件。當(dāng)對客戶機(jī)104、 105、 106、 107和108進(jìn)行存取時(shí),管理員可以在管理 員圖形用戶接口GUI(未顯示)內(nèi)工作。管理員GUI可以在任何DBRS 1 OO機(jī)器上 顯示,無論是什么用戶平臺(tái),都允許管理員對任何客戶機(jī)104、 105、 106、 107或108進(jìn)行連接和代理(broker)服務(wù)。管理員權(quán)限的另一個(gè)重要部分包 括可以具體規(guī)定應(yīng)用環(huán)境的能力。例如,管理員可以生成記錄,該記錄指定 例如DBRS100將要使用的備份設(shè)備和限定的客戶機(jī)的序號等的指令。管理員 也可以規(guī)定在備份和恢復(fù)環(huán)境下強(qiáng)制應(yīng)用的規(guī)則,包括備份進(jìn)度表,以及數(shù) 據(jù)在被重復(fù)使用前將被保護(hù)多久。除了管理員權(quán)限之外,DBRS100還引入一個(gè)系統(tǒng)以恢復(fù)丟失數(shù)據(jù)。當(dāng)用 戶數(shù)據(jù)丟失或損壞時(shí),用戶或管理員可以瀏覽文件索引118中的可恢復(fù)文件, 然后生成狀態(tài)報(bào)告,以描述通過介質(zhì)數(shù)據(jù)庫120跟蹤的、備份設(shè)備126、 128、 130和132上的巻內(nèi)內(nèi)容中的丟失數(shù)據(jù)或位置。然后用戶可以及時(shí)將丟失數(shù)據(jù) 恢復(fù)到用戶指定點(diǎn)。當(dāng)請求恢復(fù)丟失數(shù)據(jù)時(shí),DBRS100定位所要尋找的數(shù)據(jù) 并指示文件的恢復(fù)。數(shù)據(jù)可以被恢復(fù)到原來保存該數(shù)據(jù)的客戶機(jī)104、 105、 106、 107或108上,或其他指定的客戶機(jī)上。此外,DBRS100可以在不同類型的環(huán)境中實(shí)施而且可以在多個(gè)不同平臺(tái) 上運(yùn)行。例如,UNIX服務(wù)器上的備份軟件可以支持windows客戶機(jī),反之亦 然。無論服務(wù)器平臺(tái)是什么,涉及一個(gè)客戶機(jī)的任何設(shè)備或巻內(nèi)的備份數(shù)據(jù) 均可以被讀出,并且該設(shè)備和巻的數(shù)據(jù)可以被任何DBRS100服務(wù)器及時(shí)再生 到用戶指定點(diǎn)。而無論客戶機(jī)104、 105、 106、 107或108的平臺(tái)是什么,來 自任何系統(tǒng)客戶機(jī)104、 105、 106、 107或108的備份數(shù)據(jù)可以在某單個(gè)備份 設(shè)備或單個(gè)介質(zhì)組上共存。n.動(dòng)態(tài)備份系統(tǒng)和方法A.示例性鏡像系統(tǒng)的組件上述的DBRS100示例在網(wǎng)絡(luò)上智能地存儲(chǔ)和檢索文件。除了上面討論的 示例性系統(tǒng)功能之外,該示例性系統(tǒng)可以支持多種其他的應(yīng)用和特性。其中 一個(gè)應(yīng)用包括用以解釋數(shù)據(jù)庫鏡像的數(shù)據(jù)庫備份的特性。圖2顯示一個(gè)示例性數(shù)據(jù)庫鏡像系統(tǒng)200。該數(shù)據(jù)庫鏡像系統(tǒng)200包括數(shù) 據(jù)庫服務(wù)器202和數(shù)據(jù)庫服務(wù)器204。數(shù)據(jù)庫服務(wù)器202和數(shù)據(jù)庫服務(wù)器204中 的一個(gè)被指定為主服務(wù)器,而另一個(gè)被指定為副服務(wù)器。當(dāng)數(shù)據(jù)庫服務(wù)器202 被指定為主服務(wù)器時(shí),位于服務(wù)器202上的用戶數(shù)據(jù)庫206是實(shí)時(shí)數(shù)據(jù)庫(live database)。類似地,當(dāng)數(shù)據(jù)庫服務(wù)器204指定為副服務(wù)器時(shí),用戶數(shù)據(jù)庫208 是鏡像數(shù)據(jù)庫(mirror database)。除了用戶數(shù)據(jù)庫206和208之外,數(shù)據(jù)庫服務(wù)器202和數(shù)據(jù)庫服務(wù)器204分 別包括系統(tǒng)數(shù)據(jù)庫210和212,系統(tǒng)數(shù)據(jù)庫210和212包括用以將用戶數(shù)據(jù)庫 206和208設(shè)定為"實(shí)時(shí)"或"鏡像"數(shù)據(jù)庫的信息。當(dāng)用戶數(shù)據(jù)庫206和208 配置成參與數(shù)據(jù)庫鏡像時(shí),服務(wù)器應(yīng)用214和216分別更新在數(shù)據(jù)庫服務(wù)器 202和數(shù)據(jù)庫服務(wù)器204上安裝的系統(tǒng)數(shù)據(jù)庫210和212,以使其包含所有有關(guān) 用戶數(shù)據(jù)庫206和208作為"實(shí)時(shí)"或者"鏡像"中的一個(gè)的狀態(tài)信息。在此 初始設(shè)置之后,在系統(tǒng)數(shù)據(jù)庫210和212上的所有包括有關(guān)用戶數(shù)據(jù)庫206和 208作為"實(shí)時(shí)"或"鏡像"的狀態(tài)的信息被服務(wù)器應(yīng)用214和216保存。每一
個(gè)服務(wù)器應(yīng)用214和216監(jiān)測用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208的狀態(tài),并記錄 與服務(wù)器應(yīng)用有關(guān)的系統(tǒng)數(shù)據(jù)庫中每一個(gè)用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208 的狀態(tài)。例如,當(dāng)用戶數(shù)據(jù)庫206的狀態(tài)從"實(shí)時(shí)"轉(zhuǎn)為"鏡像"時(shí),用戶 數(shù)據(jù)庫206的狀態(tài)改變被服務(wù)器應(yīng)用214監(jiān)測到并被記錄在系統(tǒng)數(shù)據(jù)庫210 中。用戶數(shù)據(jù)庫208從"鏡像"轉(zhuǎn)換到"實(shí)時(shí)"的即時(shí)狀態(tài)變化也被服務(wù)器 應(yīng)用214檢測和在系統(tǒng)數(shù)據(jù)庫210中記錄。類似地,當(dāng)用戶數(shù)據(jù)庫208從"鏡 像"轉(zhuǎn)換到"實(shí)時(shí)"時(shí),用戶數(shù)據(jù)庫208的狀態(tài)改變同樣被服務(wù)器應(yīng)用216監(jiān) 測并記錄在系統(tǒng)數(shù)據(jù)庫212中。用戶數(shù)據(jù)庫206從"實(shí)時(shí)"轉(zhuǎn)換到"鏡像"的 即時(shí)狀態(tài)變化也被服務(wù)器應(yīng)用216監(jiān)測并記錄在系統(tǒng)數(shù)據(jù)庫212中。服務(wù)器應(yīng)用214和216監(jiān)測用戶數(shù)據(jù)庫206和208的狀態(tài)變化,服務(wù)器應(yīng)用 模塊218和220管理數(shù)據(jù)庫鏡像系統(tǒng)200中用戶數(shù)據(jù)庫206和208的狀態(tài)信息。 一個(gè)模塊,例如服務(wù)器應(yīng)用模塊218和220,是可以運(yùn)行某個(gè)功能如用戶數(shù)據(jù) 庫的備份和/或恢復(fù)的編碼塊。例如,由一個(gè)模塊運(yùn)行的功能可以是微軟SQL 服務(wù)器數(shù)據(jù)庫的備份和/或恢復(fù),此時(shí)用戶數(shù)據(jù)庫206和208是微軟SQL服務(wù)器 數(shù)據(jù)庫,并且服務(wù)器應(yīng)用214和216是微軟SQL服務(wù)器應(yīng)用。雖然本發(fā)明可以 和微軟SQL服務(wù)器一起使用,但本發(fā)明的范圍不能被局限于使用微軟SQL服 務(wù)器,而是可以擴(kuò)充到能與此處揭示的系統(tǒng)、設(shè)備和程序兼容的任何其他服 務(wù)器。服務(wù)器應(yīng)用214和216的每一個(gè)均與一個(gè)特定的服務(wù)器應(yīng)用模塊相關(guān)。此 外,服務(wù)器應(yīng)用模塊218與服務(wù)器應(yīng)用214相關(guān),且服務(wù)器應(yīng)用模塊220與服 務(wù)器應(yīng)用216相關(guān)。在數(shù)據(jù)庫服務(wù)器202上,服務(wù)器應(yīng)用模塊218詢問系統(tǒng)數(shù) 據(jù)庫210的狀態(tài)信息,以判斷用戶數(shù)據(jù)庫206是實(shí)時(shí)用戶數(shù)據(jù)庫還是鏡像用戶 數(shù)據(jù)庫。同樣,在數(shù)據(jù)庫服務(wù)器204上,服務(wù)器應(yīng)用模塊220詢問系統(tǒng)數(shù)據(jù)庫 212的狀態(tài)信息,以判斷用戶數(shù)據(jù)庫208是實(shí)時(shí)用戶數(shù)據(jù)庫還是鏡像用戶數(shù)據(jù) 庫。在數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)備份實(shí)時(shí)用戶數(shù)據(jù)庫之前,服務(wù)器應(yīng)用模塊218 和220中的一個(gè)首先識別當(dāng)前的實(shí)時(shí)用戶數(shù)據(jù)庫。在備份操作期間,服務(wù)器應(yīng)用模塊218和220不僅用以判定實(shí)時(shí)用戶數(shù)據(jù) 庫,服務(wù)器應(yīng)用模塊218和220還相互傳輸信息以協(xié)調(diào)并管理在備份和恢復(fù)操 作期間的鏡像關(guān)聯(lián)。當(dāng)服務(wù)器應(yīng)用模塊218或220被與圖1所示的備份服務(wù)器 102對應(yīng)的備份服務(wù)器221調(diào)用時(shí),服務(wù)器應(yīng)用模塊218和220可以檢測用戶數(shù)
據(jù)庫206的和208的設(shè)置的改變。進(jìn)而,服務(wù)器應(yīng)用模塊218和220彼此傳輸關(guān) 于用戶數(shù)據(jù)庫206和208的指定改變的信息。在服務(wù)器應(yīng)用模塊218和220彼此 傳輸信息之后,服務(wù)器應(yīng)用模塊218再將用戶數(shù)據(jù)庫206和208的指定改變傳 輸?shù)絺浞莘?wù)器221 。備份服務(wù)器221就能夠在備份數(shù)據(jù)庫服務(wù)器的相關(guān)保存 集(saveset)內(nèi)將有關(guān)用戶數(shù)據(jù)庫206和208的指定信息更新,并詢問與實(shí)時(shí) 數(shù)據(jù)庫對應(yīng)的服務(wù)器應(yīng)用模塊218或220,以實(shí)現(xiàn)備份操作。假設(shè)發(fā)生了故障恢復(fù)(failover),該故障恢復(fù)導(dǎo)致用戶數(shù)據(jù)庫206的狀 態(tài)從"實(shí)時(shí)"改變?yōu)?鏡像",舉例說明為了完成備份和恢復(fù)操作,服務(wù)器 應(yīng)用模塊218和220彼此之間是如何傳輸信息,以及隨后與備份服務(wù)器221是 如何傳輸信息的。當(dāng)服務(wù)器應(yīng)用模塊218在故障恢復(fù)發(fā)生后被調(diào)用時(shí),服務(wù) 器應(yīng)用模塊218與服務(wù)器應(yīng)用模塊220傳輸針對用戶數(shù)據(jù)庫206的狀態(tài)信息, 服務(wù)器應(yīng)用模塊218從服務(wù)器應(yīng)用模塊220獲知該用戶數(shù)據(jù)庫208是當(dāng)前的實(shí) 時(shí)數(shù)據(jù)庫,同時(shí)服務(wù)器應(yīng)用模塊218也告知服務(wù)器應(yīng)用模塊220此時(shí)用戶數(shù)據(jù) 庫206是鏡像數(shù)據(jù)庫。在與服務(wù)器應(yīng)用模塊220傳輸信息之后,服務(wù)器應(yīng)用模 塊218與備份服務(wù)器221傳輸信息,將用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208的狀態(tài) 改變告知備份服務(wù)器221 。然后備份服務(wù)器221在備份于數(shù)據(jù)庫鏡像系統(tǒng)200 中的數(shù)據(jù)庫服務(wù)器的保存集信息中記錄被修改的狀態(tài)信息。這一程序被稱為 探測,用于定位實(shí)時(shí)數(shù)據(jù)庫。在數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)開始備份操作之前,必須首先確定實(shí)時(shí)數(shù)據(jù)庫 的位置。當(dāng)啟動(dòng)備份操作之后,可以連接位于數(shù)據(jù)庫服務(wù)器202上的服務(wù)器 應(yīng)用214和位于數(shù)據(jù)庫服務(wù)器204上的服務(wù)器應(yīng)用216中的任何一個(gè)以定位實(shí) 時(shí)用戶數(shù)據(jù)庫。備份操作可以由用戶或備份服務(wù)器221啟動(dòng)。備份服務(wù)器221 與服務(wù)器應(yīng)用模塊218或220連接,而后者可以與服務(wù)器應(yīng)用214或216連接, 以判定用戶數(shù)據(jù)庫206和208的狀態(tài)。與實(shí)時(shí)用戶數(shù)據(jù)庫206或208對應(yīng)的服務(wù) 器應(yīng)用模塊218或220運(yùn)行備份操作。用戶數(shù)據(jù)庫206和208的狀態(tài)通過從系統(tǒng) 數(shù)據(jù)庫210和212中讀入的信息而確定。例如,如果備份服務(wù)器221與服務(wù)器 應(yīng)用模塊218連接,服務(wù)器應(yīng)用模塊218通過連接服務(wù)器應(yīng)用214而執(zhí)行讀入 系統(tǒng)數(shù)據(jù)庫210的表格輸入項(xiàng)的功能。類似地,如果備份服務(wù)器221與服務(wù)器 應(yīng)用模塊220連接,服務(wù)器應(yīng)用模塊220通過連接服務(wù)器應(yīng)用216而執(zhí)行讀入 系統(tǒng)數(shù)據(jù)庫212的表格輸入項(xiàng)的功能。系統(tǒng)數(shù)據(jù)庫210和212的表格輸入項(xiàng)包
含有關(guān)用戶數(shù)據(jù)庫206和208的狀態(tài)信息。每個(gè)系統(tǒng)數(shù)據(jù)庫210和212包含數(shù)據(jù) 庫鏡像系統(tǒng)200中的每個(gè)用戶數(shù)據(jù)庫206和208的狀態(tài)信息。例如,系統(tǒng)數(shù)據(jù) 庫210可以包含有關(guān)用戶數(shù)據(jù)庫206作為"實(shí)時(shí)"用戶數(shù)據(jù)庫,以及用戶數(shù)據(jù) 庫208作為"鏡像"用戶數(shù)據(jù)庫的狀態(tài)信息。在系統(tǒng)數(shù)據(jù)庫210和212包含的 有關(guān)每一個(gè)用戶數(shù)據(jù)庫206和208的信息允許備份服務(wù)器通過連接位于數(shù)據(jù) 庫服務(wù)器202和204上的服務(wù)器應(yīng)用模塊218和220中的僅其中之一而獲得有 關(guān)實(shí)時(shí)數(shù)據(jù)庫的位置信息。假設(shè)用戶數(shù)據(jù)庫206是當(dāng)前的實(shí)時(shí)用戶數(shù)據(jù)庫,而用戶數(shù)據(jù)庫208是當(dāng) 前的鏡像數(shù)據(jù)庫,舉例說明在備份操作期間數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)運(yùn)行的功 能。當(dāng)啟動(dòng)備份操作之后,備份服務(wù)器221與位于數(shù)據(jù)庫服務(wù)器204上的服 務(wù)器應(yīng)用模塊220連接,然后服務(wù)器應(yīng)用模塊220通過與服務(wù)器應(yīng)用216連 接而讀入系統(tǒng)數(shù)據(jù)庫212的表格輸入項(xiàng)。系統(tǒng)數(shù)據(jù)庫212的表格輸入項(xiàng)指示 用戶數(shù)據(jù)庫208是鏡像數(shù)據(jù)庫,而用戶數(shù)據(jù)庫206是實(shí)時(shí)數(shù)據(jù)庫。服務(wù)器應(yīng) 用模塊220會(huì)將此信息返回給備份服務(wù)器102。然后,因?yàn)橛脩魯?shù)據(jù)庫206 是當(dāng)前的實(shí)時(shí)數(shù)據(jù)庫,備份服務(wù)器102對該用戶數(shù)據(jù)庫206進(jìn)行備份。請參考圖l,在備份實(shí)時(shí)用戶數(shù)據(jù)庫之后,存有實(shí)時(shí)用戶數(shù)據(jù)庫的數(shù)據(jù) 庫服務(wù)器的名稱被記錄到位于備份服務(wù)器102上的文件索引118中。在文件索 引118中對實(shí)時(shí)用戶數(shù)據(jù)庫制作的輸入項(xiàng)是實(shí)時(shí)輸入項(xiàng)(live entry)。而存有 鏡像數(shù)據(jù)庫的數(shù)據(jù)庫服務(wù)器的名稱也被記錄在文件索引118中。在文件索引 118中對鏡像用戶數(shù)據(jù)庫制作的輸入項(xiàng)被稱為別名輸入項(xiàng)(alias entry)。通 過記錄在進(jìn)行預(yù)定備份時(shí)每個(gè)用戶數(shù)據(jù)庫的狀態(tài),文件索引118中的輸入項(xiàng) 使得能夠重組備份鏈,并在需要恢復(fù)實(shí)時(shí)用戶數(shù)據(jù)庫的情形中,提供一個(gè)可 以很容易地識別實(shí)時(shí)用戶數(shù)據(jù)庫的方法。請回到附圖2,從上面可以注意到,為了讓備份服務(wù)器102(圖1)可以對實(shí) 時(shí)用戶數(shù)據(jù)庫進(jìn)行備份,在數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)對用戶數(shù)據(jù)庫206和208的 狀態(tài)進(jìn)行跟蹤。當(dāng)數(shù)據(jù)庫服務(wù)器202和204分別包括用以跟蹤用戶數(shù)據(jù)庫206 和208的狀態(tài)的系統(tǒng)數(shù)據(jù)庫210和212時(shí),也可以在數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)引入 見證數(shù)據(jù)庫服務(wù)器(witness) 222以跟蹤用戶數(shù)據(jù)庫206和208的狀態(tài)。例如, 當(dāng)用戶數(shù)據(jù)庫206的狀態(tài)從"實(shí)時(shí)"數(shù)據(jù)庫轉(zhuǎn)換到"鏡像"數(shù)據(jù)庫時(shí),見證數(shù) 據(jù)庫服務(wù)器222通過將用戶數(shù)據(jù)庫206的當(dāng)前狀態(tài)記錄到系統(tǒng)數(shù)據(jù)庫224中而
跟蹤該變化。類似地,當(dāng)用戶數(shù)據(jù)庫208的狀態(tài)從"鏡像"數(shù)據(jù)庫轉(zhuǎn)換為"實(shí)時(shí)"數(shù)據(jù)庫時(shí),見證數(shù)據(jù)庫服務(wù)器222在系統(tǒng)數(shù)據(jù)庫224內(nèi)對用戶數(shù)據(jù)庫208 的狀態(tài)變化進(jìn)行跟蹤。這樣,系統(tǒng)數(shù)據(jù)庫224分別運(yùn)行與位于數(shù)據(jù)庫服務(wù)器 202和204上的系統(tǒng)數(shù)據(jù)庫210和212類似的功能。見證數(shù)據(jù)庫服務(wù)器222和數(shù)據(jù)庫服務(wù)器202之間的另一個(gè)相似點(diǎn)在于,與 數(shù)據(jù)庫服務(wù)器202和204相似,見證數(shù)據(jù)庫服務(wù)器222包括有服務(wù)器應(yīng)用226和 服務(wù)器應(yīng)用模塊228。服務(wù)器應(yīng)用226運(yùn)行類似在服務(wù)器應(yīng)用214和216上運(yùn)行 的功能。即,服務(wù)器應(yīng)用226被存有用戶數(shù)據(jù)庫206和208的狀態(tài)的服務(wù)器應(yīng) 用214和216更新,并且在系統(tǒng)數(shù)據(jù)庫224中保存此信息的記錄。服務(wù)器應(yīng)用 模塊22S,與服務(wù)器應(yīng)用模塊218和220類似,也通過與服務(wù)器應(yīng)用模塊218和 220傳輸信息而獲得用戶數(shù)據(jù)庫206和208的狀態(tài)信息,并且服務(wù)器應(yīng)用模塊 228也通過與服務(wù)器應(yīng)用226連接而檢索來自系統(tǒng)數(shù)據(jù)庫224的此信息。除了跟蹤用戶數(shù)據(jù)庫206和208的狀態(tài)之外,見證數(shù)據(jù)庫服務(wù)器222還可 以運(yùn)行其他功能。例如,見證數(shù)據(jù)庫服務(wù)器222可以參與到數(shù)據(jù)庫鏡像系統(tǒng) 200的角色指定中。具體來說,見證數(shù)據(jù)庫服務(wù)器222可以參與將實(shí)時(shí)數(shù)據(jù)庫 的角色指定給用戶數(shù)據(jù)庫206,將鏡像數(shù)據(jù)庫角色指定給用戶數(shù)據(jù)庫208。角 色的指定以實(shí)時(shí)數(shù)據(jù)庫服務(wù)器202、鏡像數(shù)據(jù)庫服務(wù)器204和見證數(shù)據(jù)庫服務(wù) 器222中的多數(shù)一致的信息為根據(jù)。更具體地,見證數(shù)據(jù)庫服務(wù)器222可以判 別用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208在不同角色間的變化。見證數(shù)據(jù)庫服務(wù)器 222可以在數(shù)據(jù)庫鏡像系統(tǒng)200內(nèi)驅(qū)動(dòng)自動(dòng)故障恢復(fù)以及伴隨的用戶數(shù)據(jù)庫 206和208的狀態(tài)改變。例如,如果當(dāng)故障恢復(fù)發(fā)生而用戶數(shù)據(jù)庫206是實(shí)時(shí) 數(shù)據(jù)庫時(shí),見證數(shù)據(jù)庫服務(wù)器222立刻將實(shí)時(shí)數(shù)據(jù)庫的角色指定給用戶數(shù)據(jù) 庫208并且將用戶數(shù)據(jù)庫206的角色改變?yōu)殓R像數(shù)據(jù)庫。通過判別用戶數(shù)據(jù)庫 206和208角色的改變,見證數(shù)據(jù)庫服務(wù)器222確保在發(fā)生故障恢復(fù)時(shí)沒有數(shù) 據(jù)丟失。如果在數(shù)據(jù)庫鏡像系統(tǒng)200中沒有見證數(shù)據(jù)庫服務(wù)器222, 一個(gè)用戶 可以選擇驅(qū)動(dòng)故障恢復(fù)并將用戶數(shù)據(jù)庫206的角色指定為實(shí)時(shí)數(shù)據(jù)庫,將用 戶數(shù)據(jù)庫208的角色指定為鏡像數(shù)據(jù)庫。如圖2所示,雖然數(shù)據(jù)庫鏡像系統(tǒng)可以僅僅包括主服務(wù)器202、副服務(wù)器 204和見證數(shù)據(jù)庫服務(wù)器222,但鏡像數(shù)據(jù)庫也可以有很多其他結(jié)構(gòu)。如圖3 所示,既沒有針對可以被鏡像的不同數(shù)據(jù)庫的數(shù)量的限制,也沒有針對存放
鏡像數(shù)據(jù)庫的數(shù)據(jù)庫服務(wù)器之間的關(guān)聯(lián)的限制。例如,第一數(shù)據(jù)庫服務(wù)器302可以存放實(shí)時(shí)數(shù)據(jù)庫"A" 304,也可以存放鏡像數(shù)據(jù)庫n'306。第二數(shù)據(jù)庫 服務(wù)器308可以存放實(shí)時(shí)數(shù)據(jù)庫"B"310,也可以存放鏡像數(shù)據(jù)庫A'312。在 這個(gè)實(shí)例中,保存在第二數(shù)據(jù)庫服務(wù)器308上的鏡像數(shù)據(jù)庫A' 312與保存在第 一數(shù)據(jù)庫服務(wù)器302上的實(shí)時(shí)數(shù)據(jù)庫A304聯(lián)系在一起。但是,與實(shí)時(shí)數(shù)據(jù)庫 B310聯(lián)系在一起的鏡像數(shù)據(jù)庫B' 314,不是保存在第一數(shù)據(jù)庫服務(wù)器302上, 而是改為保存在第三數(shù)據(jù)庫服務(wù)器316上。除了存放鏡像數(shù)據(jù)庫B' 314之外, 第三數(shù)據(jù)庫服務(wù)器316還存放實(shí)時(shí)數(shù)據(jù)庫C318。最后,第n數(shù)據(jù)庫服務(wù)器320 存放實(shí)時(shí)數(shù)據(jù)庫n 322和鏡像數(shù)據(jù)庫(n-l)' 324。圖3舉例說明在多個(gè)數(shù)據(jù)庫服 務(wù)器上的實(shí)時(shí)和鏡像數(shù)據(jù)庫的一個(gè)示例性實(shí)施例的結(jié)構(gòu)。此外,任何數(shù)據(jù)庫 服務(wù)器302、 308、 316或320都可以作為任何數(shù)據(jù)庫的見證服務(wù)器。然而,在 任意數(shù)量的數(shù)據(jù)庫服務(wù)器上可以有任意數(shù)目的實(shí)時(shí)數(shù)據(jù)庫和鏡像數(shù)據(jù)庫的 不同結(jié)構(gòu),并且可以被本發(fā)明的實(shí)施例實(shí)現(xiàn)。本發(fā)明的范圍并不限于與在預(yù) 定服務(wù)器上保存的實(shí)時(shí)數(shù)據(jù)庫和鏡像數(shù)據(jù)庫的任何特定組合相聯(lián)系而應(yīng)用。在此揭示的備份數(shù)據(jù)的方法的實(shí)例在美國專利申請?zhí)?1/080, 229、名稱 為"Systems and Methods for Dynamic Data Backup" (Workman Nydegger案號 16192丄1沖公開,該專利申請?jiān)诒緦@暾埖耐蝗丈暾垼⑼ㄟ^參考援引 于此。B.鏡像功能請?jiān)賲㈤唸D2,模塊218、 220和228以及用戶數(shù)據(jù)庫206和208是數(shù)據(jù)庫鏡 像系統(tǒng)200的模塊的示例。模塊218、 220和228以及用戶數(shù)據(jù)庫206和208配置 成以如下方式協(xié)作允許數(shù)據(jù)從數(shù)據(jù)庫鏡像系統(tǒng)200的數(shù)據(jù)庫206和208進(jìn)行 備份。如前所述,在一個(gè)數(shù)據(jù)庫鏡像系統(tǒng)200的示例中至少包括二個(gè)數(shù)據(jù)庫服 務(wù)器202和204,以及用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208。在包括兩個(gè)或更多數(shù) 據(jù)庫服務(wù)器202和204的網(wǎng)絡(luò)中,用戶數(shù)據(jù)庫206和用戶數(shù)據(jù)庫208中的任何一個(gè)均可以被指定為實(shí)時(shí)用戶數(shù)據(jù)庫或鏡像用戶數(shù)據(jù)庫中的任意一個(gè)。雖然用 戶數(shù)據(jù)庫206最初被指定為實(shí)時(shí)用戶數(shù)據(jù)庫,而用戶數(shù)據(jù)庫208最初被指定為鏡像用戶數(shù)據(jù)庫,但對預(yù)定數(shù)據(jù)庫的指定可以隨時(shí)改變。因此,"實(shí)時(shí)"和 "鏡像"的角色可以被動(dòng)態(tài)地重新指定。例如,保存在數(shù)據(jù)庫服務(wù)器202上的
用戶數(shù)據(jù)庫206可能最初是被指定為實(shí)時(shí)用戶數(shù)據(jù)庫。隨著保存在數(shù)據(jù)庫服務(wù)器202上的用戶數(shù)據(jù)庫206被指定為實(shí)時(shí)用戶數(shù)據(jù)庫,保存在數(shù)據(jù)庫服務(wù)器 204上的用戶數(shù)據(jù)庫208就被指定為鏡像用戶數(shù)據(jù)庫。隨后,各用戶數(shù)據(jù)庫206 和208的角色可以被改變,對用戶數(shù)據(jù)庫206的指定將從"實(shí)時(shí)"變成"鏡像", 同時(shí)對用戶數(shù)據(jù)庫208的指定將從"鏡像"變成"實(shí)時(shí)"。在網(wǎng)絡(luò)中,各用戶數(shù) 據(jù)庫206和208的角色可以根據(jù)任意個(gè)數(shù)的理由而改變,這些理由例如是保存 被指定為實(shí)時(shí)用戶數(shù)據(jù)庫的用戶數(shù)據(jù)庫206的數(shù)據(jù)庫服務(wù)器202發(fā)生故障,不 同的用戶數(shù)據(jù)庫角色的預(yù)定改變,或通過一個(gè)附加的數(shù)據(jù)庫服務(wù)器(例如見 證數(shù)據(jù)庫服務(wù)器222)或其他的系統(tǒng)設(shè)備進(jìn)行的判別結(jié)果。被包括在數(shù)據(jù)庫鏡像系統(tǒng)200中的用戶數(shù)據(jù)庫可以被指定為實(shí)時(shí)用戶數(shù) 據(jù)庫或鏡像用戶數(shù)據(jù)庫,而保存有用戶數(shù)據(jù)庫的客戶機(jī)也可以被指定為"實(shí) 時(shí)"客戶機(jī)或"鏡像"客戶機(jī)。當(dāng)保存其上的用戶數(shù)據(jù)庫被指定為實(shí)時(shí)用戶數(shù) 據(jù)庫時(shí),客戶機(jī)被稱為實(shí)時(shí)客戶機(jī);而當(dāng)保存其上的用戶數(shù)據(jù)庫被指定為鏡 像用戶數(shù)據(jù)庫時(shí),客戶機(jī)被稱為鏡像客戶機(jī)。在鏡像數(shù)據(jù)庫的系統(tǒng)200內(nèi),不僅用戶數(shù)據(jù)庫206和208的角色隨著時(shí)間 而動(dòng)態(tài)地改變,并且這些角色并不是隨意而定的,而是與不同的用戶數(shù)據(jù)庫 206和208所運(yùn)行的預(yù)定功能有關(guān)。具體來說,數(shù)據(jù)庫鏡像系統(tǒng)200之所以指 定用戶數(shù)據(jù)庫206為"實(shí)時(shí)",是因?yàn)樵谙到y(tǒng)中,該用戶數(shù)據(jù)庫206是主動(dòng)工 作的數(shù)據(jù)庫。在進(jìn)行備份操作時(shí),被指定為實(shí)時(shí)用戶數(shù)據(jù)庫的用戶數(shù)據(jù)庫206 是數(shù)據(jù)庫鏡像系統(tǒng)200中被備份的數(shù)據(jù)庫。同時(shí),用戶數(shù)據(jù)庫208,當(dāng)被指定 為鏡像用戶數(shù)據(jù)庫時(shí),是被動(dòng)的,只要被指定為鏡像用戶數(shù)據(jù)庫,該用戶數(shù) 據(jù)庫208就不直接介入備份操作。雖然被指定為鏡像用戶數(shù)據(jù)庫的用戶數(shù)據(jù)庫208不直接介入備份操作, 但是數(shù)據(jù)庫鏡像系統(tǒng)200可能需要被指定為鏡像用戶數(shù)據(jù)庫的用戶數(shù)據(jù)庫 208隨時(shí)轉(zhuǎn)換角色,以擔(dān)當(dāng)實(shí)時(shí)用戶數(shù)據(jù)庫的角色。為此,每次當(dāng)被指定為 鏡像數(shù)據(jù)庫的用戶數(shù)據(jù)庫206的表格被修正時(shí),被指定為鏡像用戶數(shù)據(jù)庫的 用戶數(shù)據(jù)庫208都要接收和存儲(chǔ)與數(shù)據(jù)庫更新有關(guān)的信息。g卩,只要用戶數(shù) 據(jù)庫208被指定為鏡像用戶數(shù)據(jù)庫,用戶數(shù)據(jù)庫208就要"鏡像"被指定為實(shí) 時(shí)用戶數(shù)據(jù)庫的用戶數(shù)據(jù)庫206中的輸入項(xiàng),以保存被指定為實(shí)時(shí)用戶數(shù)據(jù) 庫的用戶數(shù)據(jù)庫206所有數(shù)據(jù)的最新記錄。這樣,在數(shù)據(jù)庫鏡像系統(tǒng)200需要
用戶數(shù)據(jù)庫208的角色從鏡像轉(zhuǎn)換為實(shí)時(shí)用戶數(shù)據(jù)庫的情形下,沒有用戶數(shù) 據(jù)庫信息被丟失或變得無法存取。因?yàn)楫?dāng)用戶數(shù)據(jù)庫206的功能為實(shí)時(shí)用戶 數(shù)據(jù)庫時(shí),所有出現(xiàn)在用戶數(shù)據(jù)庫206中的信息也會(huì)在用戶數(shù)據(jù)庫208中出 現(xiàn),此時(shí)用戶數(shù)據(jù)庫208的功能就是鏡像用戶數(shù)據(jù)庫。作為執(zhí)行諸如在此公開的數(shù)據(jù)庫鏡像處理的標(biāo)準(zhǔn)示例,在本申請中通過 參考援弓I標(biāo)準(zhǔn)型微軟SQL服務(wù)器2005(編號名稱Yukon)。在一個(gè)實(shí)施例示例 中,本發(fā)明可以結(jié)合微軟SQL服務(wù)器2005(Yukon)數(shù)據(jù)庫實(shí)施。然而,本發(fā)明 也可以適用或期望用于其他應(yīng)用,本發(fā)明的范圍并限于結(jié)合微軟SQL服務(wù)器 2005(Yukon)的應(yīng)用。C.鏡像環(huán)境下的數(shù)據(jù)庫恢復(fù)操作數(shù)據(jù)庫系統(tǒng)的鏡像功能為需要恢復(fù)丟失數(shù)據(jù)庫的客戶機(jī)提供了附加的 管理和邏輯(logistical)選擇。如圖1所示,DBRS100是一個(gè)可以運(yùn)行備份和 恢復(fù)操作的數(shù)據(jù)庫系統(tǒng)的實(shí)例,當(dāng)然本發(fā)明的范圍并不受DBRS100或任何特 定數(shù)據(jù)庫系統(tǒng)的局限。數(shù)據(jù)庫系統(tǒng)的鏡像特性能夠生成這樣一個(gè)環(huán)境,在其 中總有可用的數(shù)據(jù)庫,所以對客戶機(jī)而言總有可以存取的數(shù)據(jù)庫??蛻魴C(jī), 也稱為數(shù)據(jù)庫服務(wù)器,是鏡像數(shù)據(jù)庫系統(tǒng)內(nèi)的計(jì)算機(jī),用戶或管理員通過所 述計(jì)算機(jī)進(jìn)行數(shù)據(jù)庫的存取、備份和恢復(fù)。在一個(gè)包含了客戶機(jī)的數(shù)據(jù)庫鏡 像系統(tǒng)中,客戶機(jī)無需具有在實(shí)時(shí)數(shù)據(jù)庫和鏡像數(shù)據(jù)庫之間轉(zhuǎn)換角色的知 識。當(dāng)用戶想啟動(dòng)恢復(fù)操作時(shí),假定鏡像關(guān)聯(lián)存在,則鏡像系統(tǒng)數(shù)據(jù)庫中客 戶機(jī)之間的鏡像關(guān)聯(lián)被終止,數(shù)據(jù)庫信息在恢復(fù)服務(wù)器中被檢索,數(shù)據(jù)庫被 再生于在數(shù)據(jù)庫鏡像系統(tǒng)中的客戶機(jī)上。然后鏡像關(guān)聯(lián)被重建,恢復(fù)程序完 成?,F(xiàn)在請參閱圖4,其中提供了數(shù)據(jù)庫恢復(fù)系統(tǒng)400的細(xì)節(jié),利用該數(shù)據(jù)庫 恢復(fù)系統(tǒng)400可以運(yùn)行示例性的數(shù)據(jù)庫恢復(fù)操作。當(dāng)數(shù)據(jù)庫恢復(fù)系統(tǒng)400中的 客戶機(jī)402希望再生用戶數(shù)據(jù)庫時(shí),客戶機(jī)402與恢復(fù)服務(wù)器404傳輸信息。 除了作為恢復(fù)服務(wù)器之外,恢復(fù)服務(wù)器404在數(shù)據(jù)庫鏡像系統(tǒng)100內(nèi)的備份操 作期間還可以作為備份服務(wù)器102(如圖1所示)??蛻魴C(jī)406,以及可選擇的見 證客戶機(jī)408,也被設(shè)置在數(shù)據(jù)庫恢復(fù)系統(tǒng)400中,而且能與恢復(fù)服務(wù)器404 傳輸信息以再生用戶數(shù)據(jù)庫。除此之外,數(shù)據(jù)庫恢復(fù)系統(tǒng)400內(nèi)的客戶機(jī)402 和406是鏡像伙伴。如客戶機(jī)402和406的鏡像伙伴之間的關(guān)聯(lián)的稱為動(dòng)態(tài)鏡
像關(guān)聯(lián),其被定義為一種關(guān)聯(lián),其中位于例如客戶機(jī)402和406等客戶機(jī)上的 用戶數(shù)據(jù)庫的實(shí)時(shí)和鏡像角色指定能夠隨著時(shí)間而動(dòng)態(tài)地改變。雖然客戶機(jī)402和406、以及見證客戶機(jī)408中的每一個(gè)都可以設(shè)置于數(shù) 據(jù)庫恢復(fù)系統(tǒng)400中,但在單個(gè)恢復(fù)操作期間,恢復(fù)服務(wù)器404僅僅處理來自 客戶機(jī)402、客戶機(jī)406或見證客戶機(jī)408的一個(gè)恢復(fù)請求。不過,從客戶機(jī) 402、 406或見證客戶機(jī)408向存儲(chǔ)服務(wù)器404發(fā)出的請求可以涉及多個(gè)數(shù)據(jù)庫 的再生。多個(gè)數(shù)據(jù)庫可以在客戶機(jī)402上同時(shí)再生。具體而言,正如圖3所示 以及與如圖3對應(yīng)的說明所描述的,客戶機(jī)402可能是多個(gè)鏡像關(guān)聯(lián)中的鏡像 伙伴。由此,在恢復(fù)操作期間,其鏡像關(guān)聯(lián)涉及客戶機(jī)402的任何一個(gè)數(shù)據(jù) 庫都可以在上再生。如果有客戶機(jī)402同時(shí)涉及多個(gè)鏡像關(guān)聯(lián)中,則多個(gè)數(shù) 據(jù)庫就可以在進(jìn)行單一恢復(fù)操作時(shí)在客戶機(jī)402上再生。數(shù)據(jù)庫恢復(fù)系統(tǒng)400的恢復(fù)操作被存取客戶機(jī)402、 406或408的用戶或管 理員啟動(dòng)。由用戶或管理員進(jìn)行存取的客戶機(jī)被稱為"當(dāng)前客戶機(jī)"。在下 面的討論中,當(dāng)前客戶機(jī)是客戶機(jī)402。但很顯然,當(dāng)前客戶機(jī)既可以是客 戶機(jī)406也可以是408。因?yàn)橄旅娴挠懻撝锌蛻魴C(jī)402是當(dāng)前用戶,就由位于 客戶機(jī)402上的模塊410啟動(dòng)模塊功能,當(dāng)然,如果客戶機(jī)406或408是當(dāng)前客 戶機(jī),位于客戶機(jī)406和408之上的模塊424或426中的任何一個(gè)都分別可以啟 動(dòng)數(shù)據(jù)庫恢復(fù)系統(tǒng)400的模塊功能。當(dāng)恢復(fù)操作被啟動(dòng)后,假定鏡像關(guān)聯(lián)存在,則分別位于客戶機(jī)402、 406 和408上的模塊410、 424和426必須終止數(shù)據(jù)庫恢復(fù)系統(tǒng)400中的客戶機(jī)402、 406和408之間的鏡像關(guān)聯(lián)。首先,位于當(dāng)前客戶機(jī)402上的模塊410控制同樣 位于當(dāng)前客戶機(jī)402上的服務(wù)器應(yīng)用420,以終止其鏡像關(guān)聯(lián)。然后服務(wù)器應(yīng) 用420重寫系統(tǒng)數(shù)據(jù)庫422內(nèi)的鏡像關(guān)聯(lián)信息。模塊410也發(fā)指令給模塊424和 426來分別控制服務(wù)器應(yīng)用428和430,以終止在客戶機(jī)402、 406和408之間的 鏡像關(guān)聯(lián)。隨后,模塊424和426分別控制服務(wù)器應(yīng)用428和430,以終止其鏡 像關(guān)聯(lián)。服務(wù)器應(yīng)用428重寫系統(tǒng)數(shù)據(jù)庫432中包含的鏡像關(guān)聯(lián)信息,服務(wù)器 應(yīng)用430重寫系統(tǒng)數(shù)據(jù)庫434中包含的鏡像關(guān)聯(lián)信息。 一旦系統(tǒng)數(shù)據(jù)庫422、 432和434的鏡像關(guān)聯(lián)信息被重寫,客戶機(jī)402、 406和408之間的鏡像關(guān)聯(lián)就 被終止。當(dāng)啟動(dòng)恢復(fù)操作后,存取當(dāng)前客戶機(jī)的用戶或管理員必須選擇用戶或管 理員希望再生的數(shù)據(jù)庫的備份版本。每次當(dāng)用戶數(shù)據(jù)庫被備份后,數(shù)據(jù)庫的不同版本可以通過恢復(fù)服務(wù)器404完成備份。因此,恢復(fù)服務(wù)器404可以存取 數(shù)據(jù)庫的任何數(shù)目的不同版本的備份副本。例如,用戶數(shù)據(jù)庫的備份可能在 第1天發(fā)生于時(shí)間A、 B、和C,在第2天發(fā)生于時(shí)間D、 E和F,在第3天發(fā)生 于時(shí)間H和G。這些天數(shù)和時(shí)間的每一個(gè)均代表一個(gè)特定的用戶數(shù)據(jù)庫的備 份版本。希望再生用戶數(shù)據(jù)庫的用戶或管理員必須選擇再生這些版本中的那 一個(gè)。例如,用戶或管理員可以決定,其希望再生的用戶數(shù)據(jù)庫版本是在第 3天的G時(shí)間備份的版本。當(dāng)啟動(dòng)恢復(fù)操作后,當(dāng)前客戶機(jī)將會(huì)從恢復(fù)服務(wù)器 404中請求第3天G時(shí)間備份的用戶數(shù)據(jù)庫。用戶或管理員選擇再生的用戶數(shù) 據(jù)庫的特定備份版本也被稱為"目標(biāo)數(shù)據(jù)"。有關(guān)目標(biāo)數(shù)據(jù)的信息,以及所有通過恢復(fù)服務(wù)器404完成備份的用戶數(shù) 據(jù)庫的版本,被包含在位于恢復(fù)服務(wù)器404上的文件索引412和介質(zhì)數(shù)據(jù)庫 414中。存取當(dāng)前客戶機(jī)的用戶或管理員并不需要獨(dú)立地知道用戶或管理員 希望再生的目標(biāo)數(shù)據(jù)。通過位于客戶機(jī)402上的模塊410,用戶或管理員存取 位于恢復(fù)服務(wù)器404上的文件索引412和介質(zhì)數(shù)據(jù)庫414,并可以檢査文件索 弓I412和介質(zhì)數(shù)據(jù)庫414所包含的信息。通過檢査包含在文件索引412和介質(zhì) 數(shù)據(jù)庫414中的有關(guān)用戶數(shù)據(jù)庫備份版本的信息,用戶或管理員可以識別出 目標(biāo)數(shù)據(jù)。文件索引412和介質(zhì)數(shù)據(jù)庫414中的信息包括所有用戶數(shù)據(jù)庫的備 份版本的識別特性,例如,備份運(yùn)行日期,備份運(yùn)行時(shí)間,以及用戶數(shù)據(jù)庫 特定備份版本的存儲(chǔ)位置。在文件索引412中包含的每個(gè)用戶數(shù)據(jù)庫的備份版本的信息還包括在 運(yùn)行用戶數(shù)據(jù)庫的備份操作時(shí)存放用戶數(shù)據(jù)庫的客戶機(jī)的狀態(tài)。例如,如果 在對目標(biāo)數(shù)據(jù)進(jìn)行備份時(shí),客戶機(jī)402是實(shí)時(shí)客戶機(jī),文件索引412將包含一 個(gè)客戶機(jī)402的實(shí)時(shí)輸入項(xiàng)。同理,如果在對目標(biāo)數(shù)據(jù)進(jìn)行備份時(shí),客戶機(jī) 402是鏡像用戶,文件索引412將包含一個(gè)客戶機(jī)402的別名輸入項(xiàng)。因?yàn)閷?客戶機(jī)402是實(shí)時(shí)客戶機(jī)還是鏡像客戶機(jī)的指定將決定位于客戶機(jī)402上的 用戶數(shù)據(jù)庫416是被指定為實(shí)時(shí)用戶數(shù)據(jù)庫還是鏡像用戶數(shù)據(jù)庫,所以文件 索引412中的實(shí)時(shí)輸入項(xiàng)和別名輸入項(xiàng)可以表示在備份操作時(shí),用戶數(shù)據(jù)庫 416是被指定為實(shí)時(shí)還是鏡像數(shù)據(jù)庫。當(dāng)運(yùn)行目標(biāo)數(shù)據(jù)的備份時(shí),文件索引 412中有關(guān)客戶機(jī)402的指定信息,以及有關(guān)客戶機(jī)406和408的指定信息,對
再生目標(biāo)數(shù)據(jù)后在數(shù)據(jù)庫恢復(fù)系統(tǒng)400內(nèi)重建鏡像關(guān)聯(lián)而言變得很重要。下面將討論鏡像關(guān)聯(lián)重建的更具體的細(xì)節(jié)。如上所知,位于客戶機(jī)402上的模塊410對文件索引412、恢復(fù)服務(wù)器404 和介質(zhì)數(shù)據(jù)庫414進(jìn)行存取,以使用戶或管理員識別目標(biāo)數(shù)據(jù)并獲取目標(biāo)數(shù) 據(jù)的信息。當(dāng)位于客戶機(jī)402上的模塊410己經(jīng)完成文件索引412中包含的信 息的存取之后,模塊410從恢復(fù)服務(wù)器404請求目標(biāo)數(shù)據(jù)?;謴?fù)服務(wù)器404定 位并檢索目標(biāo)數(shù)據(jù),并將目標(biāo)數(shù)據(jù)傳輸至信息給模塊410。在目標(biāo)數(shù)據(jù)已經(jīng) 被檢索之后,模塊410向服務(wù)器應(yīng)用420傳輸目標(biāo)數(shù)據(jù)信息,然后服務(wù)器應(yīng)用 420利用該目標(biāo)數(shù)據(jù)再生用戶數(shù)據(jù)庫416。除了與服務(wù)器應(yīng)用420傳輸信息之外,模塊41 O還分別與客戶機(jī)406和408 中的模塊424、 426傳輸信息。具體地,模塊410將經(jīng)由恢復(fù)服務(wù)器404檢索的 目標(biāo)數(shù)據(jù)的信息傳輸?shù)侥K424和426。然后模塊424將接收到的目標(biāo)數(shù)據(jù)傳 輸?shù)椒?wù)器應(yīng)用428,隨后服務(wù)器應(yīng)用428利用該目標(biāo)數(shù)據(jù)再生用戶數(shù)據(jù)庫 418。因?yàn)槲挥诳蛻魴C(jī)408上的服務(wù)器應(yīng)用430并沒有包括用戶數(shù)據(jù)庫,所以 模塊426不會(huì)向客戶機(jī)408傳輸目標(biāo)數(shù)據(jù)。用戶數(shù)據(jù)庫416和418分別被服務(wù)器 應(yīng)用420和428使用同一個(gè)目標(biāo)數(shù)據(jù)再生,因此,只要用戶數(shù)據(jù)庫416和418已 經(jīng)被再生,用戶數(shù)據(jù)庫416和418中的每一個(gè)都包括目標(biāo)數(shù)據(jù)的同一副本。然 而,在數(shù)據(jù)庫恢復(fù)系統(tǒng)400內(nèi)啟動(dòng)恢復(fù)操作的用戶也可能只選擇恢復(fù)一個(gè)用 戶數(shù)據(jù)庫,如用戶數(shù)據(jù)庫416,而保留用戶數(shù)據(jù)庫418,因此用戶數(shù)據(jù)庫418 不被重寫。在用戶數(shù)據(jù)庫416和418再生之后,客戶機(jī)402、 406和408之間的鏡像關(guān) 聯(lián)被重建。在發(fā)生備份操作時(shí)從文件索引412經(jīng)由模塊410獲得的有關(guān)客戶機(jī) 402、 406、和408的指定信息,被用于重新指定客戶機(jī)402、 406和408為實(shí)時(shí)、 鏡像、或見證客戶機(jī)。如果由模塊410從文件索引412獲得的有關(guān)當(dāng)前客戶機(jī) 402的指定信息表示在進(jìn)行備份操作時(shí)當(dāng)前客戶機(jī)402曾經(jīng)是實(shí)時(shí)客戶機(jī),那 么當(dāng)前客戶機(jī)402將被重新指定為實(shí)時(shí)客戶機(jī)。對當(dāng)前客戶機(jī)402作為實(shí)時(shí)客 戶機(jī)的重新指定暗含地包括對用戶數(shù)據(jù)庫426作為實(shí)時(shí)用戶數(shù)據(jù)庫的重新指 定。如果包含在文件索引412的信息表示在目標(biāo)數(shù)據(jù)備份時(shí)當(dāng)前客戶機(jī)402曾 經(jīng)是鏡像客戶機(jī),則用戶可以選擇重新指定客戶機(jī)402為鏡像客戶機(jī),因此 也重新指定用戶數(shù)據(jù)庫416為鏡像用戶數(shù)據(jù)庫。
雖然模塊410已經(jīng)獲得有關(guān)客戶機(jī)402、 406和408作為實(shí)時(shí)、鏡像、或見 證的信息,但鏡像關(guān)聯(lián)并沒被重建,直到服務(wù)器應(yīng)用420、 428、和430將角 色指定信息分別寫入系統(tǒng)數(shù)據(jù)庫422、 432和434。模塊410,在已經(jīng)獲得來自 文件索引412的角色指定信息后,向服務(wù)器應(yīng)用420傳輸角色指定信息。然后 服務(wù)器應(yīng)用420將該角色指定信息寫入系統(tǒng)數(shù)據(jù)庫422。模塊410將角色指定 信息傳輸給模塊424和426,模塊424和426分別與服務(wù)器應(yīng)用428和430傳輸信 息。然后服務(wù)器應(yīng)用428和430將該角色指定信息分別寫入系統(tǒng)數(shù)據(jù)庫432和 434。角色指定信息表示在進(jìn)行目標(biāo)數(shù)據(jù)備份時(shí)客戶機(jī)402曾經(jīng)是實(shí)時(shí)客戶機(jī) 而客戶機(jī)406曾經(jīng)是鏡像客戶機(jī)。該角色指定信息也同樣表示當(dāng)運(yùn)行目標(biāo)數(shù) 據(jù)備份時(shí),位于客戶機(jī)402上的用戶數(shù)據(jù)庫416被指定為實(shí)時(shí)用戶數(shù)據(jù)庫,以 及位于客戶機(jī)406上的用戶數(shù)據(jù)庫418被指定為鏡像用戶數(shù)據(jù)庫。當(dāng)角色指定 信息被服務(wù)器應(yīng)用420、 428和430分別寫入系統(tǒng)數(shù)據(jù)庫422、 432、和434之后, 客戶機(jī)402和406被重新指定為實(shí)時(shí)客戶機(jī)402和鏡像客戶機(jī)406。當(dāng)文件索引 中的信息指出客戶機(jī)408既不是實(shí)時(shí)用戶也不是鏡像用戶時(shí),客戶機(jī)408就被 重新指定為見證客戶機(jī)。在數(shù)據(jù)庫恢復(fù)系統(tǒng)400中運(yùn)行的恢復(fù)程序的細(xì)節(jié)描 述包括在在下面針對圖5的討論。請參閱圖5,在一個(gè)數(shù)據(jù)庫恢復(fù)系統(tǒng),例如數(shù)據(jù)庫恢復(fù)系統(tǒng)示例400中運(yùn) 行的示例恢復(fù)程序500中,示范了客戶機(jī)之間的鏡像關(guān)聯(lián)是如何被終止,用 戶數(shù)據(jù)庫信息如何在客戶機(jī)上再生,以及客戶機(jī)間的鏡像關(guān)聯(lián)是如何被重建 的。恢復(fù)程序500出現(xiàn)于在數(shù)據(jù)庫恢復(fù)系統(tǒng)內(nèi)存在、并參與其鏡像關(guān)聯(lián)的每 個(gè)客戶機(jī)上。此外,組成恢復(fù)程序500的步驟是示例性的,而且其運(yùn)行次序 可以改變以適用于恢復(fù)程序500的任何特定應(yīng)用。當(dāng)存取客戶機(jī)的用戶或管 理員請求恢復(fù)操作時(shí),程序500從步驟502開始。在步驟503中判別數(shù)據(jù)庫恢 復(fù)系統(tǒng)的客戶機(jī)之間存在還是不存在鏡像關(guān)聯(lián)。如果存在鏡像關(guān)聯(lián),則終止 在數(shù)據(jù)庫恢復(fù)系統(tǒng)的客戶機(jī)之間的鏡像關(guān)聯(lián)如步驟504所示。當(dāng)位于每個(gè)客戶機(jī)上的服務(wù)器應(yīng)用重寫存在于服務(wù)器應(yīng)用中的系統(tǒng)數(shù)據(jù)庫時(shí),鏡像關(guān)聯(lián)被 終止。如果客戶機(jī)之間不存在鏡像關(guān)聯(lián),那么在步驟506中,在數(shù)據(jù)庫恢復(fù) 系統(tǒng)中位于客戶機(jī)上的模塊存取位于恢復(fù)服務(wù)器上的文件索弓I和介質(zhì)數(shù)據(jù) 庫中包含的信息。該模塊從文件索引和介質(zhì)數(shù)據(jù)庫獲得的信息包括由恢復(fù)服 務(wù)器恢復(fù)的不同備份版本的識別信息和角色指定信息。
由該模塊獲得的識別信息,可以幫助存取該模塊所位于的客戶機(jī)的用戶 或管理員識別用戶或管理員希望恢復(fù)的備份數(shù)據(jù)庫或目標(biāo)數(shù)據(jù)的預(yù)定備份 版本。
一旦用戶數(shù)據(jù)庫數(shù)據(jù)再生,角色指定信息將允許鏡像關(guān)聯(lián)被重建。繼續(xù)參考存儲(chǔ)程序500,在步驟508中,用戶或管理員識別待再生的目標(biāo) 數(shù)據(jù)。然后在步驟510中,客戶機(jī)讀出文件索引的輸入項(xiàng)以識別角色指定信 息。在步驟512中,由模塊判別該模塊所位于的客戶機(jī)是否與作為實(shí)時(shí)輸入 項(xiàng)的目標(biāo)數(shù)據(jù)的文件索引輸入項(xiàng)中列出的客戶機(jī)相匹配。如果客戶機(jī)與實(shí)時(shí) 輸入項(xiàng)中列出的客戶機(jī)匹配,則存儲(chǔ)程序500繼續(xù),模塊從恢復(fù)服務(wù)器請求 目標(biāo)數(shù)據(jù),如步驟514所示?;謴?fù)服務(wù)器檢索目標(biāo)數(shù)據(jù)并向模塊傳輸該目標(biāo) 數(shù)據(jù),如步驟516所示。然后模塊向服務(wù)器應(yīng)用傳輸該目標(biāo)數(shù)據(jù),服務(wù)器應(yīng) 用再生位于當(dāng)前客戶機(jī)上的用戶數(shù)據(jù)庫,如步驟518所示。當(dāng)模塊向服務(wù)器應(yīng)用傳輸目標(biāo)數(shù)據(jù)時(shí),在步驟518中,模塊也將由該模 塊從文件索引中獲得的角色指定信息傳輸?shù)椒?wù)器應(yīng)用中。在步驟520中, 服務(wù)器應(yīng)用寫入位于客戶機(jī)上的服務(wù)器應(yīng)用中的系統(tǒng)數(shù)據(jù)庫的角色指定信 息,并將位于客戶機(jī)上的用戶數(shù)據(jù)庫設(shè)定為實(shí)時(shí)用戶數(shù)據(jù)庫,同時(shí)將該客戶 機(jī)設(shè)定為實(shí)時(shí)客戶機(jī)。在步驟512中,如果客戶機(jī)與文件索引實(shí)時(shí)輸入中列出的客戶機(jī)不匹配 的話,恢復(fù)程序500在步驟522繼續(xù),由客戶機(jī)判別其是否與文件索引的別名 輸入項(xiàng)中列出的客戶機(jī)相匹配。如果客戶機(jī)與文件索引的別名輸入項(xiàng)中列出 的客戶機(jī)相匹配,恢復(fù)程序500繼續(xù)步驟524,模塊向恢復(fù)服務(wù)器請求目標(biāo)數(shù) 據(jù)?;謴?fù)服務(wù)器檢索目標(biāo)數(shù)據(jù)并向該模塊傳輸目標(biāo)數(shù)據(jù),如步驟526所示。 然后模塊向服務(wù)器應(yīng)用傳輸目標(biāo)數(shù)據(jù),服務(wù)器應(yīng)用再生位于與模塊和服務(wù)器 應(yīng)用相關(guān)聯(lián)的客戶機(jī)上的用戶數(shù)據(jù)庫,如步驟528所示。如上所述,當(dāng)模塊向服務(wù)器應(yīng)用傳輸目標(biāo)數(shù)據(jù)時(shí),模塊也將由該模塊從 文件索引獲得的角色指定信息傳輸?shù)椒?wù)器應(yīng)用上,同樣如步驟528所示。 在步驟530中,服務(wù)器應(yīng)用寫入位于客戶機(jī)的服務(wù)器應(yīng)用上的系統(tǒng)數(shù)據(jù)庫的 角色指定信息,并將用戶數(shù)據(jù)庫設(shè)定為鏡像用戶數(shù)據(jù)庫,同時(shí)將客戶機(jī)設(shè)定 為鏡像客戶機(jī)。當(dāng)模塊存取在文件索引和介質(zhì)數(shù)據(jù)庫內(nèi)包含的信息時(shí),如果模塊確認(rèn)客 戶機(jī)既沒有和文件索引實(shí)時(shí)輸入項(xiàng)中列出的客戶機(jī)、也沒有和文件索引的別
名輸入項(xiàng)中列出的客戶機(jī)相匹配,在這種情形下,如步驟532所示,該客戶 機(jī)就是見證客戶機(jī)。在步驟534中,模塊將從文件索引獲得的角色指定信息 輸送到客戶機(jī)的服務(wù)器應(yīng)用中,并且該服務(wù)器應(yīng)用將角色指定信息寫入位于 客戶機(jī)上的系統(tǒng)數(shù)據(jù)庫中。當(dāng)目標(biāo)數(shù)據(jù)再生之后,并且角色指定信息也已經(jīng) 在數(shù)據(jù)庫恢復(fù)系統(tǒng)的每位用戶的系統(tǒng)數(shù)據(jù)庫中被寫入之后,鏡像關(guān)聯(lián)被重 建,恢復(fù)程序500完成。因此,示例恢復(fù)程序500提供一種從介入鏡像關(guān)聯(lián)的用戶數(shù)據(jù)庫中備份 的目標(biāo)數(shù)據(jù)進(jìn)行恢復(fù)的方法。通過終止鏡像關(guān)聯(lián),恢復(fù)和再生丟失的用戶數(shù) 據(jù)庫信息,并重建數(shù)據(jù)庫鏡像關(guān)聯(lián),本發(fā)明的實(shí)施例提供一種對已經(jīng)在動(dòng)態(tài) 數(shù)據(jù)庫鏡像環(huán)境下備份的數(shù)據(jù)的恢復(fù)方法,在該動(dòng)態(tài)數(shù)據(jù)庫鏡像環(huán)境下用戶 數(shù)據(jù)庫的角色指定可以隨著時(shí)間而動(dòng)態(tài)改變。本發(fā)明可以用其他特定方式實(shí)施而不會(huì)背離其精神或主要特點(diǎn)。在所有 方案中描述的實(shí)施例都僅僅是示例性的而不是限制性的。因此,本發(fā)明的范 圍由附加的權(quán)利要求示出,而不是由前面的說明書示出。落入權(quán)利要求的等 同方案的內(nèi)涵和范圍內(nèi)的所有變換均被包括在其范圍內(nèi)。
權(quán)利要求
1.一種在網(wǎng)絡(luò)中恢復(fù)備份數(shù)據(jù)的方法,該網(wǎng)絡(luò)包括位于第一客戶機(jī)上的第一數(shù)據(jù)庫,以及位于第二位客戶機(jī)上的第二數(shù)據(jù)庫,該方法包括如下步驟啟動(dòng)恢復(fù)操作請求;終止所述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫之間的動(dòng)態(tài)鏡像關(guān)聯(lián);識別要恢復(fù)的目標(biāo)數(shù)據(jù);生成對該目標(biāo)數(shù)據(jù)的位置信息的請求;接收該目標(biāo)數(shù)據(jù)的位置的相關(guān)位置信息;傳輸對該目標(biāo)數(shù)據(jù)的請求;接收該目標(biāo)數(shù)據(jù);在位于所述第一客戶機(jī)和第二客戶機(jī)上的第一數(shù)據(jù)庫和第二數(shù)據(jù)庫中再生該目標(biāo)數(shù)據(jù);以及重建所述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫之間的動(dòng)態(tài)鏡像關(guān)聯(lián)。
2. 如權(quán)利要求1所述的方法,其中,該目標(biāo)數(shù)據(jù)通過在位于恢復(fù)服務(wù)器 上的文件索引和介質(zhì)數(shù)據(jù)庫中包含的位置信息而被識別。
3. 如權(quán)利要求1所述的方法,其中,該動(dòng)態(tài)鏡像關(guān)聯(lián)通過在分別位于所 述第一客戶機(jī)和第二客戶機(jī)上的系統(tǒng)數(shù)據(jù)庫中寫入角色指定信息而被重建。
4. 如權(quán)利要求1所述的方法,還包括如下步驟 從文件索引中檢索角色指定信息;以及將該角色指定信息寫入位于所述第一客戶機(jī)和第二客戶機(jī)上的系統(tǒng)數(shù) 據(jù)庫中。
5. 如權(quán)利要求4所述的方法,其中,該角色指定信息涉及在備份該目標(biāo) 數(shù)據(jù)時(shí)對第一數(shù)據(jù)庫和第二數(shù)據(jù)庫的角色指定。
6. 如權(quán)利要求4所述的方法,其中,該文件索引中的實(shí)時(shí)輸入項(xiàng)表示當(dāng) 備份該目標(biāo)數(shù)據(jù)時(shí)在該實(shí)時(shí)輸入項(xiàng)中列出的第一數(shù)據(jù)庫或第二數(shù)據(jù)庫被指 定為實(shí)時(shí)數(shù)據(jù)庫。
7. 如權(quán)利要求4所述的方法,其中,該文件索引中的別名輸入項(xiàng)表示當(dāng) 備份該目標(biāo)數(shù)據(jù)時(shí)在該別名輸入項(xiàng)中列出的第一數(shù)據(jù)庫或第二數(shù)據(jù)庫被指 定為鏡像數(shù)據(jù)庫。
8. 如權(quán)利要求1所述的方法,其中,由見證客戶機(jī)判別該動(dòng)態(tài)鏡像關(guān)聯(lián)。
9. 如權(quán)利要求1所述的方法,其中,通過將角色指定信息寫入位于所述第一客戶機(jī)、第二客戶機(jī)和一見證客戶機(jī)上的系統(tǒng)數(shù)據(jù)庫而重建該鏡像關(guān) 聯(lián)。
10. —種有助于在網(wǎng)絡(luò)中恢復(fù)備份數(shù)據(jù)庫的方法,該網(wǎng)絡(luò)包括至少兩個(gè)客戶機(jī),該方法包括如下步驟 接收對備份數(shù)據(jù)庫的請求;允許所述至少兩個(gè)客戶機(jī)之一對包含有動(dòng)態(tài)鏡像關(guān)聯(lián)信息的文件索引中的輸入項(xiàng)進(jìn)行存?。蛔R別該備份數(shù)據(jù)庫的位置; 檢索該備份數(shù)據(jù)庫;以及將該備份數(shù)據(jù)庫傳輸?shù)剿鲋辽賰蓚€(gè)客戶機(jī)之一。
11. 如權(quán)利要求10所述的方法,其中,該文件索引中的輸入項(xiàng)記錄當(dāng)備 份數(shù)據(jù)庫時(shí)數(shù)據(jù)庫的角色指定。
12. 如權(quán)利要求10所述的方法,其中,該文件索引中的實(shí)時(shí)輸入項(xiàng)表示 當(dāng)備份數(shù)據(jù)庫時(shí)在該實(shí)時(shí)輸入項(xiàng)中涉及的數(shù)據(jù)庫被指定為實(shí)時(shí)數(shù)據(jù)庫。
13. 如權(quán)利要求10所述的方法,其中,該文件索引中的別名輸入項(xiàng)表示 當(dāng)備份數(shù)據(jù)庫時(shí)在該別名輸入項(xiàng)中涉及的數(shù)據(jù)庫被指定為鏡像數(shù)據(jù)庫。
14. 如權(quán)利要求10所述的方法,其中,該備份數(shù)據(jù)庫的位置是遠(yuǎn)程存儲(chǔ) 位置。
15. 如權(quán)利要求10所述的方法,其中,對該備份數(shù)據(jù)庫的檢索還包括如 下步驟存取存儲(chǔ)位置;以及自該存儲(chǔ)位置獲取該備份數(shù)據(jù)庫的副本。
16. —種計(jì)算機(jī)程序產(chǎn)品,用以實(shí)現(xiàn)在網(wǎng)絡(luò)中恢復(fù)數(shù)據(jù)的方法,該網(wǎng)絡(luò) 包括位于第一客戶機(jī)上的第一數(shù)據(jù)庫和位于第二客戶機(jī)上的第二數(shù)據(jù)庫,該 計(jì)算機(jī)程序包括計(jì)算機(jī)可讀介質(zhì),其上載有用以實(shí)現(xiàn)包括如下步驟的方法的可執(zhí)行指令啟動(dòng)恢復(fù)操作請求;終止所述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫之間的動(dòng)態(tài)鏡像關(guān)聯(lián);識別要恢復(fù)的目標(biāo)數(shù)據(jù);生成對該目標(biāo)數(shù)據(jù)的位置信息的請求;接收該目標(biāo)數(shù)據(jù)位置的相關(guān)位置信息;傳輸對該目標(biāo)數(shù)據(jù)的請求;接收該目標(biāo)數(shù)據(jù);在位于所述第一客戶機(jī)和第二客戶機(jī)上的第一數(shù)據(jù)庫和第二數(shù)據(jù)庫中 再生該目標(biāo)數(shù)據(jù);以及重建所述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫之間的動(dòng)態(tài)鏡像關(guān)聯(lián)。
17. 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中,該目標(biāo)數(shù)據(jù)通過位于 恢復(fù)服務(wù)器上的文件索引和介質(zhì)數(shù)據(jù)庫中包含的位置信息而被識別。
18. 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中,該動(dòng)態(tài)鏡像關(guān)聯(lián)通過 在分別位于所述第一客戶機(jī)和第二客戶機(jī)上的系統(tǒng)數(shù)據(jù)庫中寫入角色指定 信息而被重建。
19. 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,還包括如下步驟 從文件索引中檢索角色指定信息;以及將該角色指定信息寫入位于所述第一客戶機(jī)和第二客戶機(jī)上的系統(tǒng)數(shù) 據(jù)庫中。
20. 如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,其中,該角色指定信息涉及 在備份該目標(biāo)數(shù)據(jù)時(shí)對所述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫的角色指定。
21. 如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,其中,該文件索引中的實(shí)時(shí) 輸入項(xiàng)表示當(dāng)備份該目標(biāo)數(shù)據(jù)時(shí)在該實(shí)時(shí)輸入項(xiàng)中列出的第一數(shù)據(jù)庫或第 二數(shù)據(jù)庫被指定為實(shí)時(shí)數(shù)據(jù)庫。
22. 如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,其中,該文件索引中的別名 輸入項(xiàng)表示當(dāng)備份該目標(biāo)數(shù)據(jù)時(shí)在該別名輸入項(xiàng)中列出的第一數(shù)據(jù)庫或第 二數(shù)據(jù)庫被指定為鏡像數(shù)據(jù)庫。
23. 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中,由見證客戶機(jī)判別該動(dòng)態(tài)鏡像關(guān)聯(lián)。
24. 如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中,通過將角色指定信息 寫入位于所述第一客戶機(jī)、第二客戶機(jī)和一見證客戶機(jī)上的系統(tǒng)數(shù)據(jù)庫而重 建該鏡像關(guān)聯(lián)。
全文摘要
在包括位于第一客戶機(jī)上的第一數(shù)據(jù)庫和位于第二客戶機(jī)上的第二數(shù)據(jù)庫的網(wǎng)絡(luò)中,用戶或管理員啟動(dòng)恢復(fù)操作。終止第一客戶機(jī)和第二客戶機(jī)之間的動(dòng)態(tài)鏡像關(guān)聯(lián),并且識別用戶或管理員希望恢復(fù)的數(shù)據(jù)庫的備份副本。當(dāng)運(yùn)行備份操作時(shí),第一客戶機(jī)或第二客戶機(jī)之一從恢復(fù)服務(wù)器中接收有關(guān)數(shù)據(jù)庫備份副本的位置信息及數(shù)據(jù)庫的角色指定信息。數(shù)據(jù)庫的備份副本從存儲(chǔ)位置檢索并再生于第一和第二客戶機(jī)的每一個(gè)之上,重建第一客戶機(jī)和第二客戶機(jī)之間的動(dòng)態(tài)鏡像關(guān)聯(lián)。
文檔編號G06F11/00GK101120319SQ200580048140
公開日2008年2月6日 申請日期2005年12月21日 優(yōu)先權(quán)日2004年12月30日
發(fā)明者克雷格·鄧肯, 木 柴, 阿迪蒂亞·卡普爾, 馬聞璐 申請人:伊姆西公司