專利名稱:動態數據備份的系統及方法
技術領域:
本發明涉及一種備份數據的系統及方法。更具體地,本發明的實施 例涉及一種在數據庫鏡像環境中備份數據的系統和方法。
背景技術:
在日常生活和商業環境中,計算機網絡無處不在。除了廣泛的互聯網應
用之外,局域網(LANs)允許用戶共享計算機服務。很多企業實體在其機 構內部使用LANs,并通過網絡為用戶提供數據的存取。
對計算機和計算機網絡的依賴就產生了提高數據可用性和可靠性的需 求。很多商業實體將幾乎所有的商業數據存儲在計算機網絡中,并且網絡用 戶希望在任何允許時間內都擁有不間斷的數據存取。而這種不間斷的數據存 取的需求則需要具有功能增強的軟件和硬件的支持。因為網絡中存f諸數據的 數量、網絡中數據存取能力的需求都在不斷增長,所以保護數據不受如系統 故障、文件損壞和病毒入侵等意外事件的影響就變得越來越困難。
一般而言,保護數據不受潛存的破壞性事件的影響,都由用以備份數據 的軟件以及用以存儲所備份數據的安全硬件共同完成。隨著需要保存的數據 量增加,數據備份操作就變得愈加復雜。例如,千兆字節的數據(gigabytes of data)就不能從原始位置快速傳輸到備份位置。此外,對于持續的數據存取 是絕對必要的環境而言,在進行備份時使得數據變成不可用就不是可行的選 擇。
雖然對大批量數據進行備份時已經成為問題,但這卻不是僅存的與典型 的數據備份系統相關的問題。網絡用戶和管理員可能還希望對不同類型的數 據進行備份。在文件備份之外,網絡用戶可能還想備份應用和服務,而對應 用和服務的備份則頗有難度。例如,當啟動備份時,應用和服務通常都含有 打開文件,而此類打開文件一般不能被有效地或可靠地備份,這些文件在備 份操作時經常會被跳過。其結果就是,往往需要額外的備份應用來^3、同管理
在啟動文件系統備份時被跳過的應用和服務的備份操作。
與數據備份有關的另外的問題涉及到當數據被傳輸到備份位置時,備份 數據的跟蹤方式。特別地,當數據被備份時,備份副本被移到新的^f立置,此 時很有必要形成一個有關數據是怎樣被存儲的記錄,以利于對存儲數據進行 存取。 一般而言,備份系統包括記錄每個備份文件或應用的精確{立置的數據 庫。當用戶希望從備份系統中對文件進行定位或恢復時,數據庫在備份介質 中文件的存儲位置對文件進行定位。
當對備份數據的位置進行跟蹤時,典型的備份軟件系統僅僅將數據放到 備份位置并在索引中對其位置進行跟蹤。更具智能的數據庫軟件系統則具有 在備份數據時對數據進行分類的功能,這樣數據就可以被智能地存儲起來。 例如,較為復雜的數據庫軟件系統可以在同一介質中存儲相似文f^的備份, 用此方式分類和存儲數據將允許更有效的數據存儲和恢復。
典型備份軟件系統的另一個缺點是,在網絡中它們不能進行數據的重新 定位,或者在網絡中不能有多于一個可用的數據副本。雖然備份軟^牛系統從 網絡中的所有用戶處收集數據,但數據本身被認為是處在網絡中的某個單一 位置中,而不是與其他位置交叉參照。當對網絡中的數據進行備傷、時,上述 冗余和交叉參照都不能實現。
為了進一步清楚說明本發明示例性實施例的以上以及其它方面,通過參 考附圖中顯示的具體的示例性實施例給出本發明更為具體的說明。可以理解 的是,這些附圖只是描繪了本發明的示例性實施例,并不能因此認為對本發 明的范圍進行了限定。附圖沒有按比例繪制。通過如下附圖對本發明的附加 特性和細節加以說明和解釋,其中
圖1示出在網絡中備份文件系統數據的示例性系統;
圖2示出在數據庫鏡像環境中定位數據庫的示例性系統;
圖3示出在數據庫鏡像環境中為多個數據庫配置鏡像關系的示例性系
統;
圖4示出在數據庫鏡像環境中確定實時數據庫和備份數據庫的示例性過
程; 圖5示出在數據庫鏡像環境中備份數據庫的示例性過程。
具體實施例方式
I.示例性數據庫操作系統
在圖1中示出了適用于本發明實施例的一個操作環境。圖1示出示例性
文件系統數據備份及恢復系統("DBRS" ) 100, DBRS IOO通常具有如下 功能在存儲位置重現在線文件系統數據以及維護關于該數據的位置追蹤信 息和過時的追蹤信息。如果數據的在線版本丟失或損壞,DBRS 100能夠重 建該數據。如果DBRS 100運行于其中的網絡出現故障,DBRS 100能夠將 所有DBRS IOO文件系統重建為各自原始結構,與寫入存儲時存在的文件系 統一樣。
一個DBRS 100的示例性實施例包括三個基本部件備份服務器102, 一個或多個客戶機104、 105、 106、 107和108,以及數據的備份巻IIO。備 份服務器102及客戶機104、 105、 106、 107和108是具有能夠運行DBRS 100 操作必需的軟件的物理實體。備份服務器102包括組織和管理DBRS 100功 能的程序和服務。客戶機104、 105、 106、 107禾n 108包括執行DBRS 100 功能的程序和服務。
例如,備份服務器102為其客戶機管理數據,例如這些客戶機包括客戶 機104、 105、 106、 107和108。客戶機104、 105、 106、 107和108代表在 網絡中送遞待備份的文件的機器。備份服務器102可合并各備份纟且112、 114 和116的效用來組織上述客戶機/數據。備份組是指各組客戶機和/或備份在 一起作為一組的數據。單個客戶機可被包括在多個備份組中,如備傷、組112 和備份組114所示。
為了管理來自客戶機104、 105、 106、 107和108的被備份的數據,DBRS 100依靠數據追蹤信息,如圖1中備份服務器102的文件索引118和介質數 據庫120所示。文件索引118和介質數據庫120中的輸入項用來保持描述所 有在DBRS100環境中已被備份的數據、客戶機以及文件的內容和位置信息。
備份服務器102的文件索引118是根據每個客戶機組織的備份文件的可 瀏覽列表。網絡中每個客戶機的每個備份文件在文件索引中列出。文件索引 118的輸入項包括關于文件的信息,例如文件類型、文件備份時間,以及其
他與文件有關的信息,例如原始文件所在的客戶機。因為文件可被多次備份 而且備份副本可被存儲于多個位置,所以文件索引118中用于文件的$俞入項 可包括關于每個備份文件的備份位置和備份時間的信息。文件索引118中的關于特定文件的多個備份位置和備份時間的信息能夠使用戶識別取回文件的特定版本。關于文件的多個備份的輸入項信息可保留在文件索引118中由 管理員規定的任意長的時間。
當文件索引118追蹤個別文件時,介質數據庫120追蹤文件的存儲位置。 換句話說,介質數據庫120包括對介質存儲位置的參考。在操作中,每當備 份組112、 114或116被備份至DBRS 100上的存儲巻時,介質數據庫120 都接收輸入項。就如同文件索引118中的輸入項一樣,上述輸入項將會在介 質數據庫120中保留直到管理員移除上述輸入項。如果相應數據被重寫,則 介質數據庫120中的輸入項也能夠被移除。
一旦知道關于數據的位置信息,就可以用不同的方式存儲數據。例如, 數據可存儲于設備中的介質巻,所述設備包括從如圖1所示的備份月艮務器102 可存取的或通過遠程服務器可存取的磁帶驅動器、硬盤或可移動磁盤。在備 份數據的示例性系統中,數據存儲于設備上的巻中,如備份巻110和備份設 備126、 128、 130和132所示例。利用設備和巻來存儲數據的一個例子是通 過將數據存儲器分組成磁盤來在磁盤陣列上存儲數據。利用設備和巻來存儲 數據的另一個例子是通過將數據存儲器分組成特定的磁帶巻來在磁帶驅動 器上存儲數據。利用設備和巻來存儲數據的又一個的例子是通過纟每數據存儲 器分組成服務器上的硬盤來在遠程服務器上存儲數據。盡管這些例子有助于 更好理解設備和巻的可能配置,但是DBRS IOO在設備和巻中存儲數據的能 力并不以此為限。更普遍來說,備份設備126、 128、 130和132是指存儲數 據方式的概念性模型,而并非限制于特定的系統或設備。
DBRS 100中的備份設備126、 128、 130和132的可用性通過備份設備 126、 128、 130和132的存儲各種類型數據的能力而得到進一步加強。特別 地,備份設備126、 128、 130和132能夠包含每種文件類型的數據。例如, 圖形文件、程序執行文件、以及文檔文件的備份副本能夠一并存儲在備份設 備126、 128、 130和132中。
備份設備126、 128、 130和132的一個基本方面是備份設備126、 128、
130和132在DBRS 100中加速取回備份文件的能力。例如,當用戶請求備 份文件的恢復時,如果對該文件的文件索引輸入項和介質數據庫輸入項包含 高度確定的位置信息,則DBRS IOO能夠快速地取回該文件,其中這些位置 信息包括對備份設備126、 128、 130和132以及所使用的特定介質的參考, 所使用的特定介質例如為磁帶、CD、 DVD或其它用來存儲文件的介質。
考慮到許多特征,其中包括備份至備份設備126、 128、 130和132, DBRS IOO最初被配置為獨立地執行功能。但是管理員具有許多控制DBRS 100功 能的能力。因此,管理員能夠根據不同的客戶機和/或文件特點來分離要存儲 的文件,以及當備份巻變得不再使用并應該被移除時能夠進行定義。例如, 管理員可將DBRS 100配置為從備份創建起經過特定時間周期后從介質數據 庫120中移除備份巻。管理員還能夠對備份組112、 114和116進行定義, 備份組112、 114和116可包括一個或多個客戶機及其文件、目錄或文件系 統,或保護客戶機上的所有文件。
當對客戶機104、 105、 106、 107和108進行存取時,管理員可以在管 理員GUI (未顯示)中進行操作。管理員GUI能夠在任何DBRS 100機器上 顯示,允許管理員對客戶機104、 105、 106、 107和108進行界面操作和代 理服務而不論客戶機的平臺。管理員能力的另一個重要方面涉及指定應用環 境的能力。例如,管理員能夠創建指定例如DBRS IOO將要使用的備份設備 的指令以及所定義的客戶機數量的記錄。管理員還能夠指定在備傷、和恢復環 境中執行應用程序的規則,包括備份時間表和在數據被回收前保護該數據多 久。
除管理員能力外,DBRS 100還包括恢復丟失數據的系統。當客戶機數 據丟失或被損壞時,用戶或是管理員能夠瀏覽文件索引118中的可恢復文件, 隨后創建報告來說明丟失數據的狀態和位置,其中丟失數據的狀態和位置通 過備份設備126、 128、 130和132的巻中的介質數據庫12 0的內容進行追蹤。 然后用戶能夠在用戶指定的時間點恢復丟失數據。當創建恢復丟失數據的請 求時,DBRS 100定位要尋找的數據并指導文件的恢復。數據可恢復至數據 起源的客戶機104、 105、 106、 107和108,或恢復至另一個指定的客戶機。
此外,DBRS 100具有在不同環境中執行操作的能力并且能夠運行在多 種不同平臺上。例如,UNIX服務器上的備份軟件能夠支持Windows客戶機,
反之亦然。不論何種服務器平臺,都可以讀取與客戶機有關的任何設備或巻
的備份數據,在用戶指定的時間點通過任何DBRS 100服務器能夠重建設備 或巻。不論客戶機104、 105、 106、 107和108的平臺,來自任何系統客戶 機104、 105、 106、 107和108的備份數據能夠在單一備份設備上或在單一 介質裝置上共存。
n.用于動態備份的系統和方法
A.示例性鏡像系統的部件
上面所述的DBRS 100可以智能地在網絡中存儲和取回文件。除上面討 論的示例性系統的能力外,示例性系統還能夠支持各種附加應用和^K正。這 種應用之一包括負責數據庫鏡像的數據庫備份特征。
在圖2中示出示例性數據庫鏡像系統200。數據庫鏡像系統200包括數 據庫服務器202和數據庫服務器204。數據庫服務器202和數據庫服務器204 其中之一被指定為主服務器,而另一個被指定為次服務器。當數據庫服務器 202被指定為主服務器時,服務器202上的用戶數據庫206為實時數據庫。 類似地,當數據庫服務器204被指定為次服務器時,用戶數據庫208為鏡像 數據庫。
除用戶數據庫206和208之外,數據庫服務器202和數據庫服務器204 還分別包括系統數據庫210和212。系統數據庫210和212包含用來建立用 戶數據庫206和208為"實時"或"鏡像"的信息。當用戶數據庫206和208 被配置為參與數據庫鏡像時,服務器應用程序214和216分別更新安裝在數 據庫服務器202和數據庫服務器204上的系統數據庫210和212,以包含關 于用戶數據庫206和208的狀態為"實時"或"鏡像"的信息。緊接著此初 始設置步驟,系統數據庫210和212上包含的關于用戶數據庫206和208的 狀態為"實時"或"鏡像"的所有信息由服務器應用程序214和216進行維 護。服務器應用程序214和216中的每一個監測用戶數據庫206和用戶數據 庫208的狀態并且記錄系統數據庫中與服務器應用程序相關的用戶數據庫 206和用戶數據庫208的每一個的狀態。例如,當用戶數據庫206的狀態從 "實時"變為"鏡像"時,服務器應用程序214會監測用戶數據庫206的狀 態變化并且該變化被記錄于系統數據庫210中。服務器應用程序214還會監 測用戶數據庫208的狀態從"鏡像"到"實時"的同時發生的變化并且該變化被記錄于系統數據庫210中。同樣,當用戶數據庫208的狀態從"鏡像" 變為"實時"時,服務器應用程序216會監測用戶數據庫208的狀態變化并 且該變化被記錄于系統數據庫212中。服務器應用程序216還會監測用戶數 據庫206的狀態從"實時"到"鏡像"的變化并且該變化被記錄于系統數據 庫212中。
當服務器應用程序214和216監測用戶數據庫206和208的狀態變化時, 服務器應用模塊218和220在數據庫鏡像系統200中管理用戶數據庫206和 208的狀態信息。例如服務器應用模塊218和220的模塊是能夠執行例如用 戶數據庫的備份和/或恢復功能的一條代碼。例如,由模塊執行的功能可以是 Microsoft SQL服務器數據庫的備份和/或恢復,在這種情況下用戶數據庫206 和208是Microsoft SQL服務器數據庫,以及服務器應用程序214和216是 Microsoft SQL服務器應用程序。盡管本發明可以與Microsoft SQL服務器結 合使用,但是本發明的范圍并不僅限于使用Microsoft SQL服務器。
服務器應用程序214和216的每一個均與特定的服務器應用模塊相關。 服務器應用模塊218與服務器應用程序214相關以及服務器應用模塊220與 服務器應用程序216相關。在數據庫服務器202上,服務器應用模塊218査 詢系統數據庫210的狀態信息來確定用戶數據庫206是實時用戶數據庫還是 鏡像用戶數據庫。同樣,在數據庫服務器204上,服務器應用模塊220查詢 系統數據庫212的狀態信息來確定用戶數據庫208是實時用戶數據庫還是鏡 像用戶數據庫。在數據庫鏡像系統200中的實時用戶數據庫備份之前,服務 器應用模塊218和220的其中之一識別當前的實時用戶數據庫。接下來將參 照圖4對與用戶數據庫備份操作相結合的實時用戶數據庫的識別進行更詳細 的討論。
服務器應用模塊218和220不僅在備份操作過程中識別實時用戶數據 庫,服務器應用模塊218和220也可以相互通信以調整和管理在備份和存儲 操作過程中的鏡像關系。當由與圖1中所示的備份服務器102相對應的備份 服務器221調用服務器應用模塊218或220時,服務器應用模塊218或220 能夠檢測用戶數據庫206和208的指定變化。 一旦檢測到用戶數據庫206和 208的指定變化,服務器應用模塊218和220彼此關于用戶數據庫206和208 的指定變化進行通信。在服務器應用模塊218和220彼此進行通信之后,服
務器應用模塊218和220將用戶數據庫206和208的指定變化傳送給備份服 務器221。然后備份服務器221能夠為待備份的數據庫服務器更新存儲集 (saveset)中關于用戶數據庫206和208的指定信息,并調用對應于實時數 據庫的服務器應用模塊218或220來完成備份。
作為服務器應用模塊218和220如何相互通信以及隨后與備份服務器 102通信來完成備份和恢復操作的一個例子,假設發生故障轉移造成用戶數 據庫206的狀態從"實時"變為"鏡像"。當發生故障轉移后調用服務器應 用模塊218時,服務器應用模塊218與服務器應用模塊220就用戶數據庫206 的狀態進行通信。服務器應用模塊218從服務器應用模塊220處得知用戶數 據庫208現在是實時數據庫。服務器應用模塊218還將用戶數據庫206目前 是鏡像數據庫通知給服務器應用模塊220。在與服務器應用模塊220通信后, 服務器應用模塊218與備份服務器221進行通信來向備份服務器221通知用 戶數據庫206和用戶數據庫208的狀態改變。然后備份服務器221為數據庫 鏡像系統200中待備份的數據庫服務器記錄改變的狀態信息作為存儲集。上 述過程被稱為探査并被用于定位實時數據庫。
由數據庫服務器202和204中的服務器應用模塊218和220分別執行的 功能為數據庫鏡像系統200中備份操作不可缺少的部分。在數據庫鏡像系統 200中發生備份操作之前,首先必須要確定實時數據庫的位置。當啟動備份 操作時,可以聯系位于數據庫服務器202上的服務器應用程序214和位于數 據庫服務器204上的服務器應用程序216的其中之一以定位實時用戶數據 庫。可以由用戶或備份服務器221啟動備份操作。備份服務器221聯系服務 器應用模塊218或220,反過來服務器應用模塊218或220可以聯系服務器 應用程序214或216,來得知用戶數據庫206和208的狀態。對應于實時用 戶數據庫206或208的服務器應用模塊218或220執行備份操作。通過從系 統數據庫210和212中讀取信息來確定用戶數據庫206和208的狀態。例如, 如果備份服務器221聯系服務器應用模塊218,則服務器應用模塊218通過 聯系服務器應用程序214來執行讀取系統數據庫210中的表格輸入項的功 能。同樣,如果備份服務器221聯系服務器應用模塊220,則服務器應用模 塊220通過聯系服務器應用程序216來執行讀取系統數據庫212中的表格輸 入項的功能。上述系統數據庫210和212中包含的表格輸入項包含關于用戶
數據庫206和208的狀態信息。每個系統數據庫210和212包含關于數據庫 鏡像系統200中的每個用戶數據庫206和208的狀態信息。例如,系統數據 庫210可以包含關于用戶數據庫206是"實時"的狀態信息以及還可以包括 關于用戶數據庫208是"鏡像"的狀態信息。系統數據庫210和212中包含 的關于每個用戶數據庫206和208的信息使得備份服務器通過聯系位于數據 庫服務器202和204上的服務器應用模塊218和220的僅僅之一就可以獲取 關于實時數據庫的位置信息。
作為在備份操作過程中在數據庫鏡像系統200中執行的功能的一個例 子,假設用戶數據庫206目前是實時數據庫而用戶數據庫208目前是鏡像數 據庫。當啟動備份時,備份服務器221聯系位于數據庫服務器204上的服務 器應用模塊220。然后服務器應用模塊220通過聯系服務器應用程序216執 行讀取包含于系統數據庫212中的表格輸入項的功能。系統數據庫212中的 表格輸入項指明用戶數據庫208是鏡像數據庫以及用戶數據庫206是實時數 據庫。服務器應用模塊220向備份服務器221返回此信息。因為用戶數據庫 206當前是實時數據庫,所以備份服務器221隨后備份用戶數據庫206。
現在參照圖1,當備份實時用戶數據庫時,實時用戶數據庫所在的數據 庫服務器的名稱被記錄在位于備份服務器102上的文件索引118中。為實時 用戶數據庫在文件索引118中創建的輸入項是實時輸入項。鏡像數據庫所在 的數據庫服務器的名稱也被記錄在文件索引118中。為鏡像用戶數據庫在文 件索引118中創建的輸入項被稱為別名輸入項。通過在具體備份的時候記錄 每個用戶數據庫的狀態,文件索引118中的輸入項使得重建一系列的備份變 為可能,并且提供了當需要恢復實時用戶數據庫時容易識別實時用戶數據庫 位置的途徑。
現在重新參照圖2,以上值得注意的是為了使備份服務器221備份實時 用戶數據庫變為可能,需要在數據庫鏡像系統200中追蹤用戶數據庫206和 208的狀態。當數據庫服務器202和204分別包括追蹤用戶數據庫206和208 的狀態的系統數據庫210和212時,見證數據庫服務器222也可以包含于數 據庫鏡像系統200中用于追蹤用戶數據庫206和208的狀態。例如,當用戶 數據庫206從"實時"數據庫變為"鏡像"數據庫時,見證數據庫服務器222 通過在系統數據庫224中記錄用戶數據庫206的當前狀態也追蹤該變化。相
似地,當用戶數據庫208從"鏡像"數據庫變為"實時"數據庫時,見證數
據庫服務器222也在系統數據庫224中追蹤用戶數據庫208的狀態變化。通 過上述方式,系統數據庫224執行類似于由分別位于數據庫服務器202和204 上的系統數據庫210和212所執行的功能。
見證數據庫服務器222與數據庫服務器202和204之間的另一個相似點 是如同數據庫服務器202和204,見證數據庫服務器222包括服務器應用 程序226和服務器應用模塊228。服務器應用程序226執行與由服務器應用 程序214和216執行的功能相同的功能。g口,由服務器應用程序214和216 就用戶數據庫206和208的狀態來更新服務器應用程序226,以及服務器應 用程序226在系統數據庫224中維護該信息的記錄。如同服務器應用模塊218 和220 —樣,服務器應用模塊228與服務器應用模塊218和220進行通信來 獲得用戶數據庫206和208的狀態信息,以及服務器應用模塊228也可以通 過聯系服務器應用程序226從系統數據庫224取回狀態信息。
見證數據庫服務器222還可以執行除追蹤用戶數據庫206和208中的狀 態改變之外的其它功能。例如,見證數據庫服務器222參與在數據庫鏡像系 統200中角色指定。具體地,見證數據庫服務器222可以參與將實時數據庫 的角色指定給用戶數據庫206以及將鏡像數據庫的角色指定給用戶數據庫 208。角色指定基于數據庫服務器202和204與見證數據庫服務器222之間 多數一致信息。更特別地,見證數據庫服務器222還仲裁用戶數據庫206和 用戶數據庫208的各自角色的改變。見證數據庫服務器222可以驅動數據庫 鏡像系統200中的故障轉移和伴隨的用戶數據庫206和208的狀態變化。例 如,當用戶數據庫206是實時數據庫時,如果發生故障轉移,則見證數據庫 服務器222立即將實時數據庫的角色分配給用戶數據庫208以及將用戶數據 庫206的角色變為鏡像數據庫。通過仲裁用戶數據庫206和208的角色改變, 見證數據庫服務器222確保當發生故障轉移時不會出現數據丟失。在數據庫 鏡像系統200中沒有見證數據庫服務器222的情況下,用戶可以選擇驅動故 障轉移以及為用戶數據庫208指定實時數據庫角色和為用戶數據庫206指定 鏡像數據庫角色。
盡管如圖2所示的數據庫鏡像系統可以只包括主服務器202、次服務器 204和見證數據庫服務器222,但是還可以有其它多種可能的鏡像數據庫配
置。如圖3所示,對可被鏡像的不同數據庫的數量沒有限制,以及對鏡像數 據庫所在的數據庫服務器之間的關系也沒有任何限制。例如,第一數據庫服
務器302可以包含實時數據庫"A" 304和鏡像數據庫n'306。第二數據庫服 務器308可以包含實時數據庫"B" 310和鏡像數據庫A'312。在此實例中, 存在于第二數據庫服務器308上的鏡像數據庫A,312與存在于第一數據庫服 務器302上的實時數據庫A304相關聯。但是與實時數據庫B 310相關聯的 鏡像數據庫B,314并不存在于第一數據庫服務器302上而是存在于第三數據 庫服務器316上。除保含鏡像數據庫B,314外,第三數據庫服務器316還包 含實時數據庫C318。最后,第n個數據庫服務器320包含實時數據庫n322 和鏡像數據庫(n-l) , 324。圖3顯示多數據庫服務器上的實時和鏡像數據 庫的配置的示例性實施例。此外,數據庫服務器302、 308、 316或320中的 任何一個均可以用作任一數據庫的見證數據庫服務器。然而,在多個數據庫 服務器上的實時和鏡像數據庫的多種不同配置是可能的,并且可通過本發明 的實施例被設計。本發明的范圍并不限制于與存在于特定服務器上的實時和 鏡像數據庫的任何特定設置相關的使用。 B.鏡像功能
請再次參見圖2,模塊218、 220和228以及用戶數據庫206和208是數 據庫鏡像系統200的示例性部件。模塊218、 220和228以及用戶數據庫206 和208被配置為以允許數據從數據庫鏡像系統200的數據庫206和208被備 份的方式相互合作。
如前面更早提及的,示例性數據庫鏡像系統200包括至少兩個數據庫服 務器202和204,它們分別包括實時用戶數據庫206和鏡像用戶數據庫208。 在包括兩個或更多數據庫服務器202和204的網絡中,用戶數據庫206和用 戶數據庫208的每一個可以被指定為實時用戶數據庫或鏡像用戶數據庫的角 色。盡管實時用戶數據庫206和鏡像用戶數據庫208起初被指定為"實時" 或"鏡像",但是在任何時間特定數據庫的指定能夠改變。因此,可以動態 地重新指定"實時"和"鏡像"的角色。例如,可以起初指定存在于數據庫 服務器202上的用戶數據庫206為實時用戶數據庫,指定存在于數據庫服務 器204上的用戶數據庫208為鏡像用戶數據庫。當指定存在于數據庫服務器 202上的用戶數據庫206為實時用戶數據庫時,存在于數據庫服務器204上
的用戶數據庫208就會被指定為鏡像用戶數據庫。隨后,可以改變各用戶數
據庫206和208的角色,使得用戶數據庫206的指定從"實時"變為"鏡像", 以及用戶數據庫208的指定從"鏡像"變為"實時"。各用戶數據庫206和 208的角色可以由于許多原因改變,例如實時用戶數據庫206所存在的數據 庫服務器202發生故障、各用戶數據庫的角色的預定改變、或者通過例如見 證數據庫服務器222的附加數據庫服務器或網絡中的其它系統設備進行的仲 裁。
不但在數據庫鏡像系統200中隨時間動態改變實時或鏡像用戶數據庫 206和208的角色,而且該角色不是任意的而是涉及由各用戶數據庫206和 208執行的特定功能。特別地,因為實時數據庫206為在系統中主動工作的 數據庫,所以數據庫鏡像系統200指定實時用戶數據庫206為"實時"。在 備份操作中,實時用戶數據庫206為在數據庫鏡像系統200中被備份的數據 庫。同時,鏡像用戶數據庫208為被動的并且只要其起到鏡像用戶數據庫的 功能就不直接參與到備份操作中。
盡管鏡像用戶數據庫208并未直接參與到備份操作中,數據庫鏡像系統 200可以要求鏡像用戶數據庫208在任何時間改變角色以變為實時用戶數據 庫。由于這個緣故,在同步鏡像中,每當實時用戶數據庫的表格被修改時, 鏡像用戶數據庫208接收并存儲關于數據庫更新的信息。§卩,鏡像用戶數據 庫208 "鏡像"在實時用戶數據庫206中創建的輸入項,以使得保留實時用 戶數據庫206的最新記錄。通過上述方式,當數據庫鏡像系統200要求鏡像 用戶數據庫208將角色改變為實時用戶數據庫時,因為存在于實時用戶數據 庫206中的所有信息也存在于鏡像用戶數據庫208中,所以不會出現用戶數 據庫信息丟失或不可存取的現象。
實時用戶數據庫和鏡像用戶數據庫的角色指定對于網絡備份操作十分 重要。備份操作可以通過各種方式啟動。 一種備份用戶數據庫的可行方法是 為系統上的單獨用戶在用戶選擇的任何時間啟動指定的用戶數據庫備份。另 一種備份數據庫的可行方法是根據系統中的哪個用戶數據庫被自動備份來 為管理員在系統中定義時間表。管理員可以指定系統中的所有的用戶數據庫 或是指定系統中僅被選擇的用戶數據庫在備份操作的過程中被備份。關于在 數據庫鏡像環境中的備份操作將在下面的部分D中詳細討論。
作為執行例如這里所揭示的數據庫鏡像過程的一個示例性標準,
Microsoft SQL Server 2005(代碼名稱Yukon)標準在此處通過參考援引于本 申請中。在示例性實施例中,本發明與Microsoft SQL Server 2005(Yukon)數
據庫結合應用。然而,關于本發明的其它用途及應用也是合適的和所期望的 并且本發明的保護范圍并未限制于與Microsoft SQL Server 2005(Yukon)數據 庫一起使用。
C.在鏡像環境中執行探查過程
示例性數據庫鏡像備份系統包括執行數據庫鏡像系統200的重要功能的 應用程序和模塊。由模塊218、 220和228執行的功能是數據庫鏡像系統200 的部分功能。當啟動數據庫鏡像系統200中的一個或多個用戶數據庫的備份 時,開始探査過程以在數據庫鏡像系統200中定位實時用戶數據庫。探査過 程包括由模塊218、 220和228執行的有關系統數據庫210和212的特定功 能。探查過程的目的是確定實時數據庫的位置,以便在備份操作過程中能夠 備份系統中的實時用戶數據庫。
當啟動實時用戶數據庫的備份時發生的示例性探查過程400的各個方面 在圖4中公幵。如上所述,探查過程400是在數據庫鏡像系統200中定位實 時用戶數據庫的過程。如步驟402所示,探查過程400在備份服務器聯系客 戶機(也被稱為數據庫服務器)時開始,并且創建請求以獲取位于該請求所 指向的客戶機上的數據庫的狀態。通過客戶機請求能夠啟動備份服務器和客 戶機之間的聯系以與規定何時執行實時數據庫備份的系統時間表相一致地 進行實時數據庫的備份,或是采用其它各種方式進行備份。在備份服務器聯 系被指定的客戶機后,如步驟404所示,位于客戶機上的服務器應用模塊接 收關于實時數據庫位置信息的請求。然后服務器應用程序模塊聯系位于被詢 問的客戶機的數據庫服務器上的系統數據庫來確定實時用戶數據庫的位置。
如步驟406所示,當服務器應用模塊讀取包含在位于客戶機上的系統數 據庫中的表格輸入項時,完成對實時數據庫的位置的確定。該表格輸入項包 含關于數據庫鏡像系統中的數據庫的狀態信息。在步驟408,服務器應用模 塊詢問該表格輸入項來確定位于被詢問的客戶機上的數據庫是否為實時數 據庫。如步驟410所示,如果該表格輸入項指定實時數據庫位于被詢問的客 戶機上,則該實時數據庫被定位并且備份可以繼續進行。
然而,如果該表格輸入項指定位于不同客戶機上的另一個數據庫為實時
數據庫,如步驟412所示,服務器應用模塊識別位于被詢問的客戶機上的數 據庫不是實時數據庫。隨后如步驟414所示,服務器應用模塊向備份服務器 返回實時數據庫所在的客戶機的名稱。接下來當在步驟414中備份服務器聯 系實時數據庫所在的并由服務器應用模塊指定的客戶機時,在步驟402重新 啟動探査過程400。此時在探査過程400中,已經識別出寄主有實時數據庫 的客戶機,所以可以順暢地完成從步驟402到步驟408的過程并且繼續執行 步驟410。然而,當識別出實時數據庫所在的客戶機以及當備份服務器聯系 實時客戶機時,有可能發生故障轉移,實時數據庫變為鏡像數據庫。這可能 導致步驟402、 406、 408、 412和414的多次重復。通常已證明一次或兩次 重復足以定位實時數據庫以及備份文件。第三次重復不太可能發生,其可能 表明在很短時間內發生兩次故障轉移以及在數據庫服務器中出現主要的不 禾急定。
現在回到步驟410,如果系統表格輸入項指定被詢問的客戶機含有實時 數據庫,該過程前進至步驟416,在步驟416待備份的數據庫文件(即,"目 標文件")被識別。如步驟418所示, 一旦識別出數據庫文件,就開始備份 文件以及完成探査過程400。關于這種備份操作的細節將會結合圖5的討論 在下面提供。
D.鏡像環境中的數據庫備份操作
備份過程500示出在數據庫鏡像環境中不受動態改變的數據庫角色影響 的備份數據庫的示例性過程。當開始備份數據庫時,在數據庫鏡像系統的備 份服務器的文件索引中創建數據庫輸入項。文件索引中的輸入項包含關于數 據庫的信息,其中所述信息包括數據庫為"實時"或"鏡像"的狀態。每次 在數據庫鏡像環境中執行數據庫備份時,均會為該數據庫向文件索引中增加 附加輸入項。包含于備份時所創建的備份輸入項中的信息與包含于有關數據 庫狀態的初始輸入項中的信息相類似。例如,備份時所創建的輸入項可以包 含例如執行備份的日期、執行備份的時間以及執行備份時的數據庫的狀態等 信息。
除了包含當執行備份時關于數據庫狀態的信息外,用于數據庫的文件索 引的輸入項還包含對系統中鏡像數據庫的交叉參考。更特別的是,由于在備
份時數據庫是實時數據庫,文件索引中的用于數據庫的輸入項交叉參考在備 份時包含有鏡像數據庫的數據庫服務器。在文件索引中實時和鏡像數據庫的 客戶機的交叉參考使得在執行許多備份的一段時間內追蹤數據庫的狀態變 為可能,以及使得確定實時和鏡像數據庫是相同數據庫變為可能。用于單一 數據庫的一個輸入項的査詢還將給出關于系統中其它客戶機的身份的信息。
為使可以備份數據庫鏡像系統中的數據庫,首先需要識別出要備份的數 據庫。備份服務器指定在其上開始備份過程的唯一客戶機。這個過程在圖5
的步驟502示出。系統管理員可以在特定的備份操作過程中確定備份系統中 所有的數據庫,或是管理員可以在備份操作過程中確定只有被選擇的數據庫 才被備份。另一個可行方法是系統用戶可以在備份操作中指定用戶希望包括 的特定數據庫。可選地,備份系統可被配置為根據特定的時間表自動地備份 指定數據庫的全部或是一部分。
無論是由管理員或用戶指定或是以其它方式指定要備份的數據庫,備份 服務器聯系指定的客戶機并且啟動探査過程(參見圖4),其中在此探查過 程中,如步驟504所示,備份服務器向指定的客戶機詢問實時數據庫所在的 客戶機名稱。隨后如步驟506所示,實時數據庫所在的客戶機被聯系。在備 份服務器聯系實時數據庫所在的客戶機之后,如步驟508所示,備份實時數 據庫。然后如步驟510所示,將實時數據庫所在的客戶機的名稱記錄在備份 服務器的文件索引中作為實時輸入項。如步驟512所示,鏡像數據庫所在的 客戶機名稱也被記錄在文件索引中,但是作為別名輸入項。別名輸入項包括 對為實時數據庫創建的輸入項的交叉參考。
作為在數據庫鏡像系統中可能發生的用戶可存取的備份的一個例子,當 數據庫包含于數據庫服務器A上時可能發生第一批備份。包含在數據庫服務 器A上的數據庫是實時數據庫。如果在執行完第一批備份后發生故障轉移, 例如數據庫服務器A崩潰以及實時數據庫的角色自動切換至包含于數據庫 服務器B上的數據庫,則當數據庫包含于數據庫服務器B時,或者換句話說, 當數據庫服務器B是實時數據庫時,執行下一批備份。盡管當數據庫服務器 A是實時數據庫和數據庫服務器B是實時數據庫時都執行了備份,但是利用 包含在備份服務器的文件索引的輸入項中的數據庫的交叉參考,能夠重建一 系列的備份。
以這里公開的方式備份的數據可以用于各種目的。例如,當發生系統故 障或其它一些導致原始數據丟失的事件時,所備份的數據能夠用來恢復原始
數據庫。例如,當在圖1中的用戶數據庫206和208中發生數據丟失時,所 備份的數據副本能夠用來恢復用戶數據庫206和208。在專利申請號為 No. 11/080,047、名稱為"用于恢復數據的系統和方法"(目前指定WNDocket No. 16192.7.1)的美國專利申請中,描述了利用根據這里公開的方法產生的 備份數據來恢復丟失數據的方法實例,其中該申請與本專利申請在同一天提 出并通過參考援引與此。
在不脫離本發明的精神或實質特征的情況下,本發明也可體現為其它特 定形式。所述實施例在所有方面均被認為是示例性的而非限制性的。因此, 本發明的保護范圍由后附的權利要求而非由前述的說明書表示。落入權利要 求的等同界限和范圍內的所有變化均應包括在本發明的保護范圍內。
權利要求
1. 一種在數據庫鏡像網絡中備份數據庫的方法,該數據庫鏡像網絡包括實時數據庫和鏡像數據庫以及多個客戶機,該備份數據庫的方法包括以下步驟發送請求至其中一個客戶機以獲取與該請求所指向的客戶機相關的數據庫的狀態信息;從該請求所指向的客戶機接收用以識別該實時數據庫的位置的狀態信息;以及不受任何正進行的該實時數據庫的指定變化的影響,利用所述用以識別該實時數據庫的位置的狀態信息備份該實時數據庫。
2. 如權利要求1所述的方法,其中所述用以識別該實時數據庫的位置的 狀態信息位于該請求所指向的客戶機的系統數據庫中。
3. 如權利要求1所述的方法,其中如果相關數據庫的狀態信息指定該相 關數據庫為鏡像數據庫,則系統數據庫中的信息也識別該實時數據庫所在的 客戶機。
4. 如權利要求1所述的方法,其中根據規定自動備份該實時數據庫的時 間的時間表,執行所述發送請求至其中一個客戶機的步驟。
5. 如權利要求1所述的方法,其中響應用戶啟動備份該實時數據庫的操 作,執行所述發送請求至其中一個客戶機的步驟。
6. 如權利要求1所述的方法,還包括步驟識別該實時數據庫中的目標文件,以使所述備份該實時數據庫的步驟包 括備份該目標文件。
7. 如權利要求1所述的方法,其中所述備份該實時數據庫的步驟還包括 以下步驟在備份時,在位于備份服務器上的文件索引中創建關于該實時數據庫的位置的輸入項;以及在備份時,在位于備份服務器上的文件索引中創建關于鏡像數據庫的位 置的別名輸入項。
8. 如權利要求7所述的方法,還包括以下步驟接收該實時數據庫中的目標文件的存儲位置;以及 將該目標文件的存儲位置記錄在該鏡像數據庫中。
9. 如權利要求8所述的方法,其中所述記錄該實時數據庫中的目標文件 的存儲位置的步驟包括在位于所述多個客戶機上的多個系統數據庫中創建 表格輸入項。
10. 如權利要求8所述的方法,其中所述將該目標文件的存儲位置記錄 在該鏡像數據庫中的步驟包括在位于所述多個客戶機上的多個系統數據庫 中創建表格輸入項。
11. 一種在數據庫鏡像網絡中定位待備份的數據庫的方法,該數據庫鏡 像網絡包括第一數據庫服務器、第二數據庫服務器以及備份服務器,該方法包括以下步驟接收來自該備份服務器的數據庫狀態請求;通過定位與該第一數據庫服務器或該第二數據庫服務器相關的數據庫 的相關表格輸入項來響應該數據庫狀態請求;利用該表格輸入項來識別相關數據庫的狀態信息;以及 發送關于該相關數據庫的狀態信息至該備份服務器,其中該狀態信息至 少指定該數據庫是實時數據庫還是鏡像數據庫,以及該方法的執行不受任何 正進行的該實時數據庫和該鏡像數據庫的指定變化的影響。
12. 如權利要求11所述的方法,其中根據規定自動備份該實時數據庫的 時間的時間表,接收該數據庫狀態請求。
13. 如權利要求11所述的方法,其中響應用戶啟動備份該實時數據庫的 操作來接收該數據庫狀態請求。
14. 如權利要求11所述的方法,其中如果該相關數據庫的狀態信息指定 該相關數據庫為鏡像數據庫,則該狀態信息也識別該實時數據庫^ 在的數據 庫服務器。
15. 如權利要求11所述的方法,其中如果該相關數據庫的狀態信息指定 該相關數據庫為實時數據庫,則在該表格輸入項中涉及的數據庫服務器包含 有該實時數據庫。
16. 如權利要求11所述的方法,其中該表格輸入項位于與該第一數據庫 服務器或該第二數據庫服務器相關的系統數據庫中。
17. —種計算機程序產品,用于實施在網絡中備份數據庫的方法,該網 絡包括實時數據庫和鏡像數據庫以及多個客戶機,該計算機程序產品包括計算機可讀介質,其載有用于執行以下步驟的方法的計算機可執行指 令,這些步驟包括發送請求至其中一個客戶機以獲取與該請求所指向的客戶機相關 的數據庫的狀態信息;從該請求所指向的客戶機接收用以識別該實時數據庫的位置的狀態信息;以及利用所述用以識別該實時數據庫的位置的狀態信息備份該實時數 據庫,而不受任何正進行的該實時數據庫的指定變化的影響。
18. 如權利要求17所述的計算機程序產品,其中如果該狀態信息指定該數據庫為實時數據庫,則表格輸入項中涉及的客戶機識別為該實時數據庫所 在的客戶機。
19. 如權利要求17所述的計算機程序產品,其中如果相關數據庫的狀態 信息指定該相關數據庫為鏡像數據庫,則該狀態信息也識別該實時數據庫所 在的客戶機。
20. 如權利要求17所述的計算機程序產品,其中根據指定自動備份該實 時數據庫的時間的時間表,執行所述發送請求至其中一個客戶機的步驟。
21. 如權利要求17所述的計算機程序產品,其中響應用戶啟動備份該實 時數據庫的操作,執行所述發送請求至其中一個客戶機的步驟。
22. 如權利要求17所述的計算機程序產品,其中該表格輸入項位于系統 數據庫中。
23. 如權利要求17所述的計算機程序產品,還包括 識別該實時數據庫的目標文件以使所述備份該實時數據庫的步驟包括備份該目標文件。
24. 如權利要求17所述的計算機程序產品,其中所述備份該實時數據庫 的步驟還包括以下步驟在備份時在位于備份服務器上的文件索引中創建關于該實時數據庫的 位置的輸入項;以及在備份時在位于該備份服務器上的該文件索引中創建關于鏡像數據庫的位置的別名輸入項。
25. 如權利要求24所述的計算機程序產品,還包括以下步驟 接收該實時數據庫中的目標文件的存儲位置;以及將該目標文件的存儲位置記錄在該鏡像數據庫中。
26. 如權利要求25所述的計算機程序產品,其中所述記錄該實時數據庫 中的目標文件的存儲位置的步驟包括在位于所述多個客戶機上的多個系統 數據庫中創建表格輸入項。
27. 如權利要求25所述的計算機程序產品,其中所述將該目標文件的存 儲位置記錄在該鏡像數據庫中的步驟包括在位于所述多個客戶機上的多個 系統數據庫中創建表格輸入項。
全文摘要
在包括數據庫鏡像的計算機網絡中,第一數據庫位于第一數據庫服務器上,第二數據庫位于第二數據庫服務器上,以及可選地包括見證數據庫服務器。第一數據庫和第二數據庫的其中一個為實時數據庫,而另一個為鏡像數據庫。啟動與第一數據庫服務器、第二數據庫服務器或見證數據庫服務器的通信過程,以確定第一數據庫還是第二數據庫為實時數據庫。通過從第一數據庫服務器或第二數據庫服務器或可選的見證數據庫服務器上的系統數據庫中的表格輸入項讀取信息來確定該實時數據庫的位置,以及執行備份該實時數據庫的備份操作。
文檔編號G06F12/00GK101208668SQ200580048139
公開日2008年6月25日 申請日期2005年12月21日 優先權日2004年12月30日
發明者克雷格·鄧肯, 木 柴, 阿迪蒂亞·卡普爾, 馬聞璐 申請人:伊姆西公司