日志傳送物理復(fù)制環(huán)境中備用數(shù)據(jù)庫的在線驗證方法和系統(tǒng)
背景技術(shù):數(shù)據(jù)庫是計算機化的信息存儲與檢索系統(tǒng)。數(shù)據(jù)庫由實現(xiàn)保存、檢索和備份數(shù)據(jù)的各種技術(shù)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)操作。數(shù)據(jù)庫可利用物理復(fù)制使備份(備用)副本保持最新。這確保如果原始副本(主數(shù)據(jù)庫)存在問題,那么備用數(shù)據(jù)庫可承擔(dān)主數(shù)據(jù)庫的任務(wù)(接管),并利用當(dāng)前數(shù)據(jù)進行所有數(shù)據(jù)庫操作。用戶一般需要連續(xù)訪問他們的數(shù)據(jù),從而復(fù)制便于使破壞降至最小。不過為了確保這種保護,備用數(shù)據(jù)庫必須處于運行狀態(tài),從而準(zhǔn)備好隨時接管任務(wù)。物理復(fù)制以最初具有兩個同樣的數(shù)據(jù)庫(或者通過基于磁盤的復(fù)制,或者通過數(shù)據(jù)庫備份和恢復(fù))。從此時起,借助從主數(shù)據(jù)庫到備用數(shù)據(jù)庫的事務(wù)日志數(shù)據(jù)的不間斷傳送,使數(shù)據(jù)庫保持同步。備用數(shù)據(jù)庫隨后處理日志數(shù)據(jù),并把變化寫入磁盤中。這是在備用數(shù)據(jù)庫處于運行狀態(tài)時不斷進行的,從而備用數(shù)據(jù)庫能夠在任何時候接管任務(wù)。在這種物理復(fù)制環(huán)境中,對客戶來說,非常關(guān)鍵的是知道備用數(shù)據(jù)庫具有與主數(shù)據(jù)庫相同的數(shù)據(jù),以致如果發(fā)生接管,那么不存在任何數(shù)據(jù)丟失。不過,歸因于各種錯誤,備用數(shù)據(jù)庫的數(shù)據(jù)可能不正確,所述各種錯誤包括但不限于磁盤錯誤、網(wǎng)絡(luò)錯誤、或者復(fù)制方法中的錯誤。目前的備用數(shù)據(jù)庫的全面驗證方法存在在備用系統(tǒng)喪失可用性和災(zāi)難恢復(fù)能力的問題。一些目前的驗證方法不能覆蓋整個數(shù)據(jù)庫(如果沒有相當(dāng)大的用戶工作量的話),并且在任何情況下都不能覆蓋元數(shù)據(jù)頁。本發(fā)明公開一種在復(fù)制處理正在進行的同時,確保備用數(shù)據(jù)庫和主數(shù)據(jù)庫完全相同的方法。
技術(shù)實現(xiàn)要素:實施例提供一種進行確定在日志傳送物理數(shù)據(jù)庫復(fù)制環(huán)境中,備用數(shù)據(jù)庫是否與主數(shù)據(jù)庫同步的操作的方法、產(chǎn)品和系統(tǒng)。所述操作包括在備用數(shù)據(jù)庫從主數(shù)據(jù)庫接收事務(wù)日志。所述事務(wù)日志指定主數(shù)據(jù)庫上的第一組頁面的一個或多個第一校驗和值。所述操作還包括計算備用數(shù)據(jù)庫上的第二組頁面的一個或多個第二校驗和值。所述操作還包括通過比較所述一個或多個第一校驗和值和所述一個或多個第二校驗和值,確定備用數(shù)據(jù)庫是否與主數(shù)據(jù)庫同步。附圖說明為了能夠詳細理解和實現(xiàn)上述各個方面的方式,下面參考附圖,更詳細地說明上面簡要概述的本發(fā)明的實施例。不過要注意的是,附圖僅僅圖解說明本發(fā)明的典型實施例,于是不應(yīng)被視為對本發(fā)明范圍的限制,因為本發(fā)明可以有其它等效的實施例。圖1是按照本發(fā)明的一個實施例,圖解說明用于日志傳送物理復(fù)制環(huán)境中的備用數(shù)據(jù)庫的在線驗證的系統(tǒng)的方框圖。圖2是按照本發(fā)明的一個實施例,描述用于日志傳送物理復(fù)制環(huán)境中的備用數(shù)據(jù)庫的在線驗證的方法的流程圖。圖3是按照本發(fā)明的一個實施例,圖解說明在主數(shù)據(jù)庫中生成事務(wù)日志的方法的流程圖。圖4是圖解說明對照備用數(shù)據(jù)庫,驗證主數(shù)據(jù)庫的校驗和的方法的流程圖。圖5是按照本發(fā)明的一個實施例,圖解說明數(shù)據(jù)庫管理系統(tǒng)(DBMS)的組件的方框圖。圖6按照本發(fā)明的一個實施例,圖解說明保存在事務(wù)日志中的記錄。具體實施方式本發(fā)明的實施例提供當(dāng)備用數(shù)據(jù)庫在線時,驗證日志傳送物理復(fù)制環(huán)境中的備用數(shù)據(jù)庫的技術(shù)。在一個實施例中,應(yīng)用對照主數(shù)據(jù)庫,驗證備用數(shù)據(jù)庫。在一些實施例中,應(yīng)用是數(shù)據(jù)庫管理系統(tǒng)(DBMS)的一部分。此外,應(yīng)用可被配置成為主數(shù)據(jù)庫的表空間中的頁面生成事務(wù)日志。事務(wù)日志包含存儲設(shè)備上代表數(shù)據(jù)庫的每一頁面的物理數(shù)據(jù)的校驗和值。在為表空間中的所有頁面生成日志之后,應(yīng)用把事務(wù)日志發(fā)送給備用數(shù)據(jù)庫。本領(lǐng)域的技術(shù)人員知道,備用數(shù)據(jù)庫可由與主數(shù)據(jù)庫相同的DBMS管理,由與主數(shù)據(jù)庫不同的DBMS管理,以及可以位于與主數(shù)據(jù)庫相同的物理計算機內(nèi),或者位于與主數(shù)據(jù)庫不同的計算機中。應(yīng)用隨后計算備用數(shù)據(jù)庫中的每一頁面的校驗和,并比較來自主數(shù)據(jù)庫和備用數(shù)據(jù)庫的對應(yīng)校驗和值。當(dāng)校驗和值不相等時,應(yīng)用警告用戶,因為這意味備用數(shù)據(jù)庫中的頁面數(shù)據(jù)不是主數(shù)據(jù)庫中的頁面數(shù)據(jù)的相同副本。下面將參考本發(fā)明的實施例。不過應(yīng)明白,本發(fā)明并不局限于說明的具體實施例。相反,可構(gòu)思以下特征和部件(無論是否涉及不同的實施例)的任意組合,以實現(xiàn)和實踐本發(fā)明。此外,雖然本發(fā)明的實施例可獲得與其它可能的解決方案和/或現(xiàn)有技術(shù)相比的優(yōu)點,不過無論特定優(yōu)點是不是由給定實施例實現(xiàn)的都不是對本發(fā)明的限制。從而,以下的各個方面、特征、實施例和優(yōu)點都只是例證性的,并且不應(yīng)被視為附加權(quán)利要求的要素或限制,除非在權(quán)利要求中明確地陳述。同樣地,對“本發(fā)明”的引用不應(yīng)被理解成這里公開的任何發(fā)明主題的普遍化,因而不應(yīng)被視為附加權(quán)利要求的要素或限制,除非在權(quán)利要求中明確地陳述。本領(lǐng)域的技術(shù)人員會理解,本發(fā)明可被具體體現(xiàn)成系統(tǒng)、方法或計算機程序產(chǎn)品。因而,本發(fā)明的各個方面可以采取純硬件實施例,純軟件實施例(包括固件、駐留軟件、微代碼等),或者結(jié)合這里通常都可被稱為“電路”、“模塊”或“系統(tǒng)”的軟件和硬件特征的實施例的形式。此外,本發(fā)明的各個方面可以采取包含在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,所述一個或多個計算機可讀介質(zhì)中包含計算機可讀程序代碼??梢岳靡粋€或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)可以是例如但不限于電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、設(shè)備或裝置,或者它們的任意適當(dāng)組合。計算機可讀存儲介質(zhì)的更具體例子(非窮舉列表)可包括:具有一條或多條導(dǎo)線的電連接、可移植計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦可編程只讀存儲器(EPROM或閃速存儲器)、光纖、可移植光盤只讀存儲器(CD-ROM)、光存儲裝置、磁存儲裝置,或者它們的任意適當(dāng)組合。在本文的上下文中,計算機可讀存儲介質(zhì)可以是能夠包含或保存程序的任何有形介質(zhì),所述程序供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用,或者與指令執(zhí)行系統(tǒng)、設(shè)備或裝置結(jié)合使用。計算機可讀信號介質(zhì)可包括計算機可讀程序代碼包含在其中,例如,包含在基帶中,或者體現(xiàn)為載波的一部分的傳播數(shù)據(jù)信號。這種傳播信號可以采取任意各種形式,包括但不限于電磁,光,或者它們的任意適當(dāng)組合。計算機可讀信號介質(zhì)可以是除計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)能夠傳遞、傳播或傳送供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用,或者與指令執(zhí)行系統(tǒng)、設(shè)備或裝置結(jié)合使用的程序。包含在計算機可讀介質(zhì)上的程序代碼可利用任何適當(dāng)?shù)拿襟w傳送,包括但不限于無線、有線、光纜、RF等,或者它們的任意適當(dāng)組合。可用一種或多種編程語言,包括諸如Java、Smalltalk、C++之類的面向?qū)ο缶幊陶Z言,和諸如“C”編程語言或類似編程語言之類的常規(guī)過程編程語言的任意組合,編寫執(zhí)行本發(fā)明的各個方面的操作的計算機程序代碼。程序代碼可完全在用戶的計算機上運行,部分在用戶的計算機上運行,作為獨立的軟件包,部分在用戶的計算機上運行并且部分在遠程計算機上運行,或者完全在遠程計算機或服務(wù)器上運行。在后一情況下,遠程計算機可通過任意類型的網(wǎng)絡(luò),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),連接到用戶的計算機,或者可實現(xiàn)與外部計算機的連接(例如,利用因特網(wǎng)服務(wù)提供商,經(jīng)因特網(wǎng)實現(xiàn)與外部計算機的連接)。下面參考按照本發(fā)明的各個實施例的方法、設(shè)備(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或方框圖,說明本發(fā)明的各個方面。要明白流程圖和/或方框圖的每個方框,以及流程圖和/或方框圖中的各個方框的組合可用計算機程序指令實現(xiàn)。這些計算機程序指令可被提供給通用計算機,專用計算機或者其它可編程數(shù)據(jù)處理設(shè)備的處理器,從而產(chǎn)生機器,以致借助計算機或其它可編程數(shù)據(jù)處理設(shè)備的處理器運行的指令產(chǎn)生實現(xiàn)在流程圖和/或方框圖的一個或多個方框中指定的功能/動作的裝置。這些計算機程序指令也可被保存在計算機可讀介質(zhì)中,所述計算機可讀介質(zhì)可指令計算機、其它可編程數(shù)據(jù)處理設(shè)備或者其它裝置按特定方式運行,以致保存在計算機可讀介質(zhì)中的指令產(chǎn)生制成品,所述制成品包括實現(xiàn)在示意流程圖和/或示意方框圖的一個或多個方框中指定的功能/動作的指令。計算機程序指令也可被加載到計算機,其它可編程數(shù)據(jù)處理設(shè)備或其它裝置上,使得在所述計算機,其它可編程設(shè)備或其它裝置上執(zhí)行一系列的操作步驟,從而產(chǎn)生計算機實現(xiàn)的處理,以致在所述計算機或其它可編程設(shè)備上執(zhí)行的指令提供實現(xiàn)在流程圖和/或方框圖的一個或多個方框中指定的功能/動作的處理。本發(fā)明的實施例可通過云計算架構(gòu)被提供給最終用戶。云計算通常指的是通過網(wǎng)絡(luò),以服務(wù)的形式提供可擴展的計算資源。更正式地,云計算可被定義成提供計算資源和其底層技術(shù)架構(gòu)(例如,服務(wù)器、存儲器、網(wǎng)絡(luò))之間的抽象,從而能夠?qū)崿F(xiàn)對可配置計算資源的共享池的便利、按需網(wǎng)絡(luò)訪問的計算能力,利用最小限度的管理工作量或者服務(wù)提供者交互,能夠快速提供和釋放所述可配置計算資源。從而,云計算允許用戶訪問“云”中的虛擬計算資源(例如,存儲器、數(shù)據(jù)、應(yīng)用、甚至完全虛擬化的計算系統(tǒng)),而不考慮用于提供計算資源的底層物理系統(tǒng)(或者這些系統(tǒng)的位置)。一般來說,云計算資源是按每次使用計費地提供給用戶的,這種情況下,只向用戶收取實際使用的計算資源(例如,用戶消耗的存儲空間的量,或者用戶例示的虛擬化系統(tǒng)的數(shù)目)的費用。用戶能夠通過因特網(wǎng),從任何地方在任何時間訪問存在于云中的任意資源。在本發(fā)明的上下文中,用戶可訪問存在于云中的應(yīng)用或者相關(guān)數(shù)據(jù)。例如,在線數(shù)據(jù)庫驗證應(yīng)用可在云中的計算系統(tǒng)上運行,并能夠驗證備用數(shù)據(jù)庫與主數(shù)據(jù)庫同步(它本身可被云提供者保存為托管服務(wù))。在這種情況下,在線數(shù)據(jù)庫驗證應(yīng)用可在主數(shù)據(jù)庫生成事務(wù)日志,并把事務(wù)日志數(shù)據(jù)保存在云中的存儲位置。這樣做允許用戶從附屬于連接到云的網(wǎng)絡(luò)(例如,因特網(wǎng))的任何計算系統(tǒng),訪問該信息。附圖中的流程圖和方框圖圖解說明按照本發(fā)明的各個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的各種可能實現(xiàn)的體系結(jié)構(gòu)、功能和操作。在這方面,流程圖或方框圖中的每個方框可代表包含實現(xiàn)指定邏輯功能的一個或多個可執(zhí)行指令的模塊、程序段或一部分代碼。另外應(yīng)注意,在一些備選實現(xiàn)中,在方框中表示的功能可不按照附圖中所示的順序發(fā)生。例如,接連表示的兩個方框事實上可以基本同時地執(zhí)行,或者各個塊有時可按照相反的順序執(zhí)行,取決于所涉及的功能。另外要注意,方框圖和/或流程圖中的每個方框,以及方框圖和/或流程圖中的各個方框的組合可用實現(xiàn)指定功能或動作的基于專用硬件的系統(tǒng),或者專用硬件和計算機指令的組合來實現(xiàn)。圖1是按照本發(fā)明的一個實施例,圖解說明當(dāng)備用數(shù)據(jù)庫在線時,驗證日志傳送物理數(shù)據(jù)庫復(fù)制環(huán)境中的備用數(shù)據(jù)庫的系統(tǒng)100的方框圖。連網(wǎng)的系統(tǒng)100包括服務(wù)器102。服務(wù)器102還可通過網(wǎng)絡(luò)130,連接到其它計算機和服務(wù)器。通常,網(wǎng)絡(luò)130可以是電信網(wǎng)絡(luò)和/或廣域網(wǎng)(WAN)。在一個特殊的實施例中,網(wǎng)絡(luò)130是因特網(wǎng)。服務(wù)器102通常包括經(jīng)總線120連接到內(nèi)存106、網(wǎng)絡(luò)接口設(shè)備118、存儲器114、輸入設(shè)備122和輸出設(shè)備124的處理器104。服務(wù)器102通常受操作系統(tǒng)108的控制。操作系統(tǒng)的例子包括UNIX,各種版本的Microsoft操作系統(tǒng),和操作系統(tǒng)的發(fā)行版。更一般地,可以使用支持這里公開的功能的任何操作系統(tǒng)。所包括的處理器104代表單CPU、多CPU、具有多個處理核芯的單CPU等等。類似地,內(nèi)存106可以是隨機存取存儲器。雖然內(nèi)存106被表示成單一實體,不過應(yīng)明白內(nèi)存106可包含多個模塊,內(nèi)存106可以存在多個層級,從高速寄存器和高速緩存到速度較低但是更大的DRAM芯片。網(wǎng)絡(luò)接口設(shè)備118可以是允許服務(wù)器102通過網(wǎng)絡(luò)130,與其它計算機通信的任意類型的網(wǎng)絡(luò)通信設(shè)備。存儲器114可以是永久性存儲設(shè)備。雖然存儲器108被表示成單一單元,不過存儲器114可以是固定和/或可拆卸存儲設(shè)備,比如固定磁盤驅(qū)動器、固態(tài)驅(qū)動器、軟盤驅(qū)動器、磁帶驅(qū)動器、可拆卸存儲卡或光學(xué)存儲器的組合。內(nèi)存106和存儲器114可以是跨越多個一級存儲設(shè)備和二級存儲設(shè)備的一個虛擬地址空間的一部分。輸入設(shè)備122可以是向服務(wù)器102提供輸入的任何設(shè)備。例如,可以使用鍵盤和/或鼠標(biāo)。輸出設(shè)備124可以是向服務(wù)器102的用戶提供輸出的任何設(shè)備。例如,輸出設(shè)備116可以是任何常規(guī)顯示屏或一組揚聲器。雖然是與輸入設(shè)備122分離地表示的,不過輸出設(shè)備124和輸入設(shè)備122可被結(jié)合。例如,可以使用帶有一體化觸摸屏的顯示屏。如圖所示,服務(wù)器102的內(nèi)存106包括數(shù)據(jù)庫管理系統(tǒng)(DBMS)110,DBMS110被配置成管理包含在服務(wù)器102的存儲器114中的主數(shù)據(jù)庫115和備用數(shù)據(jù)庫117。如上所述,本領(lǐng)域的技術(shù)人員會認識到備用數(shù)據(jù)庫117可被保存在不同的服務(wù)器中,保存在相同服務(wù)器的不同存儲單元中,以及可以由獨立的DBMS管理。如圖所示,服務(wù)器102的內(nèi)存106還包含事務(wù)日志112。在一個實施例中,事務(wù)日志112包含數(shù)據(jù)庫頁面標(biāo)識符,對應(yīng)的校驗和值,和時間戳值。在一些實施例中,事務(wù)日志112可包含把它自己識別成“驗證日志”的值,以致它只被DBMS110用于驗證。本發(fā)明的實施例可包括代替時間戳,維護定時和排序的任何機構(gòu)。校驗和值是存儲介質(zhì)上代表數(shù)據(jù)庫的一頁的物理數(shù)據(jù)的校驗和。圖1中的特定描述只是用于舉例說明;應(yīng)明白本發(fā)明并不局限于說明的具體實施例,可以構(gòu)思任意組合來實現(xiàn)和實踐本發(fā)明。圖2是按照本發(fā)明的一個實施例,圖解說明驗證備用數(shù)據(jù)庫的方法的流程圖。如圖所示,該方法始于步驟210,在步驟210,DBMS110為主數(shù)據(jù)庫115中的每一頁生成事務(wù)日志112。數(shù)據(jù)庫頁面是用于組織數(shù)據(jù)庫文件中的數(shù)據(jù)的基本內(nèi)部結(jié)構(gòu)。在一些實施例中,DBMS110可以為主數(shù)據(jù)庫115中的各頁的子集生成事務(wù)日志。在一些實施例中,單個事務(wù)日志可包含多個頁面的校驗和值。在其它一些實施例中,可以為每一頁面生成獨立的事務(wù)日志,該事務(wù)日志包含單一的頁面標(biāo)識符和校驗和值。應(yīng)理解可以構(gòu)思事務(wù)日志和頁面標(biāo)識符的任何可能組合,從而不應(yīng)視為本公開的限制。在步驟220,在步驟210生成的事務(wù)日志112被發(fā)送給備用數(shù)據(jù)庫117,以便進一步處理。在步驟230,DBMS110利用包含在事務(wù)日志112中的校驗和信息,對照主數(shù)據(jù)庫115驗證備用數(shù)據(jù)庫117中的每一頁。通過執(zhí)行這種方法,如果DBMS110確定主數(shù)據(jù)庫115和備用數(shù)據(jù)庫117不同步,那么向用戶發(fā)送報警。圖3是按照本發(fā)明的一個實施例,表示與為主數(shù)據(jù)庫115生成事務(wù)日志112的步驟210對應(yīng)的方法300的流程圖。如圖所示,方法300始于步驟310,在步驟310,DBMS110選擇主數(shù)據(jù)庫115的表空間。表空間是數(shù)據(jù)庫中的數(shù)據(jù)文件(例如,頁面)的邏輯組。表空間識別能夠保存成為數(shù)據(jù)庫對象的基礎(chǔ)的數(shù)據(jù)的存儲位置。在步驟320,DBMS110選擇在步驟310中選擇的表空間中的各個頁面。在一個實施例中,DBMS110順序選擇各個頁面。在再一個實施例中,DBMS110隨機選擇各個頁面。在另一個實施例中,DBMS按照關(guān)于主數(shù)據(jù)庫115的工作負荷的訪問模式,選擇各個頁面,以致當(dāng)需要寫入訪問的臨時阻止時,改善同時性。通常,DBMS110可以利用任何適當(dāng)?shù)姆椒ㄟx擇表空間中的各個頁面。如上所述,在一些實施例中,在步驟320,可以選擇頁面的子集來求校驗和。在一些實施例中,在步驟320為求校驗和而選擇的頁面的子集可以只包括單個頁面。在步驟330,DBMS110開始執(zhí)行包括步驟340-370的循環(huán),以計算表空間中的每個所選頁面的校驗和。關(guān)鍵的是在計算校驗和的時候,需要防止對各個頁面的修改,因為對物理數(shù)據(jù)的修改會對頁面導(dǎo)致不同的校驗和值。因而,在步驟340,DBMS110阻止對頁面的寫入訪問。同樣,這樣做可防止在計算校驗和時,頁面的內(nèi)容被修改。可用提供對頁面的臨時排斥存取的任何方法,包括但不限于自旋鎖、信號量或者鎖存器來阻止寫入訪問。在阻止對頁面的寫入訪問之后,在步驟350,DBMS110計算主數(shù)據(jù)庫115中的頁面的校驗和??梢詫崿F(xiàn)任何適當(dāng)?shù)男r灪退惴▉碛嬎阈r灪汀Pr灪褪菫榱藱z測在傳輸或存儲期間引入的錯誤,根據(jù)物理存儲數(shù)據(jù)的規(guī)定片段計算的固定大小的數(shù)據(jù)對象。通過重新計算校驗和,并比較重新計算的校驗和與原始校驗和,能夠驗證數(shù)據(jù)的完整性。如果校驗和匹配,那么幾乎肯定數(shù)據(jù)是相同的。從而,通過確定主數(shù)據(jù)庫115的表空間中的每個所選頁面的校驗和,以及備用數(shù)據(jù)庫117的表空間中的每個對應(yīng)頁面的校驗和,并比較對應(yīng)的校驗和值,DBMS110能夠驗證備用數(shù)據(jù)庫117是主數(shù)據(jù)庫115的精確副本。在步驟360,DBMS110恢復(fù)對頁面的寫入訪問。即,在計算了校驗和值之后,就恢復(fù)對頁面的寫入訪問,從而允許后續(xù)數(shù)據(jù)庫事務(wù)修改頁面。在步驟370,DBMS110把校驗和值、頁面標(biāo)識符信息和事務(wù)標(biāo)識符寫入事務(wù)日志112。事務(wù)標(biāo)識符可包括用于維護系統(tǒng)內(nèi)的定時完整性的時間戳或日志序列標(biāo)識符。通過包括事務(wù)標(biāo)識符,完成驗證的時刻被指定到某個時間或序列號。事務(wù)標(biāo)識符還確保在校驗和與比較操作中使用適當(dāng)?shù)氖聞?wù)日志。在一些實施例中,可以為其校驗和已被計算的一組頁面生成單一的事務(wù)日志,同時每個頁面標(biāo)識符連同計算的校驗和一起被寫入事務(wù)日志中。在其它一些實施例中,可以為其校驗和已被計算的各個頁面生成單獨的事務(wù)日志。在步驟380,DBMS110確定是否需要計算從表空間選擇的更多頁面的校驗和。如果是,那么方法返回步驟330,計算另一個頁面的校驗和。一旦完成,就結(jié)束步驟210。圖4按照本發(fā)明的一個實施例,圖解說明與對照包含在于步驟210中生成的事務(wù)日志112中的校驗和,驗證備用數(shù)據(jù)庫117的表空間中的各個頁面的校驗和的步驟230對應(yīng)的方法400。如圖所示,方法400始于步驟410,在步驟410,在備用數(shù)據(jù)庫117接收在步驟210生成的事務(wù)日志112。同樣地,事務(wù)日志112可提供與關(guān)于每個頁面計算的校驗和相互關(guān)聯(lián)的一組頁面標(biāo)識符。圖4描述其中生成單個事務(wù)日志以保存多個頁面的校驗和的實施例。如上所述,在其它實施例中,可以使用單獨的事務(wù)日志,其中每個事務(wù)日志保存單一頁面的校驗和。在這些實施例中,必須處理每個單獨的事務(wù)日志,以比較包含在其中的校驗和值。在一些實施例中,和另一個數(shù)據(jù)庫操作相以,DBMS110可以證實事務(wù)日志112是用來進行一組頁面的驗證。一旦接收到事務(wù)日志112,在步驟420,DBMS110就關(guān)于包含在事務(wù)日志112中的每個頁面標(biāo)識符,進行校驗和驗證。在步驟430,DBMS110開始執(zhí)行包括步驟430-490的循環(huán),以便對照備用數(shù)據(jù)庫117中的對應(yīng)頁面,比較事務(wù)日志112中的每個頁面標(biāo)識符的校驗和值。在步驟430,DBMS110阻止對備用數(shù)據(jù)庫117中的對應(yīng)頁面的寫入訪問。所述方法隨后進入步驟440,在步驟440,DBMS110計算備用數(shù)據(jù)庫117中的頁面的校驗和。一旦計算了校驗和,DBMS110就在步驟450恢復(fù)對備用數(shù)據(jù)庫117中的頁面的寫入訪問。在步驟460,DBMS110比較在步驟440生成的校驗和與事務(wù)日志112中的校驗和。所述方法進入步驟470,在步驟470,如果DBMS110確定校驗和相等,那么方法進入步驟490。如果校驗和不相等,那么方法進入步驟480,在步驟480,DBMS110提醒用戶注意主數(shù)據(jù)庫115和備用數(shù)據(jù)庫117中的頁面數(shù)據(jù)之間的不一致性。所述提醒可以是足以向用戶告知在驗證期間,在備用數(shù)據(jù)庫上發(fā)現(xiàn)了數(shù)據(jù)的可能訛誤,以及所述訛誤的細節(jié)的任意格式。例證的提醒包括電子郵件消息、彈出式消息和聲音。所述方法隨后進入步驟490,在步驟490,如果需要對照備用數(shù)據(jù)庫,驗證在事務(wù)日志112中識別的另外頁面,那么方法進入步驟420。一旦驗證了在事務(wù)日志112中識別的各個頁面,就結(jié)束方法400。在另一個實施例中,方法400還包括關(guān)于備用數(shù)據(jù)庫117的自洽性檢查(self-consistencycheck)。通常,自洽性檢查是常規(guī)文件系統(tǒng)檢查和數(shù)據(jù)完整性檢查。例如,自洽性檢查可包括DBMS110驗證對備用數(shù)據(jù)庫的讀取訪問,檢測介質(zhì)故障,確保指針鏈接正確,和監(jiān)測其它系統(tǒng)健康指標(biāo)。自洽性檢查可被安排成間隔時間變化地進行,比如在方法400的每個第n次迭代時進行,或者每隔規(guī)定的時間進行,并且可以局限于一定數(shù)目的頁面或者一定范圍的所有頁面。圖5是按照本發(fā)明的一個實施例,圖解說明DBMS110的組件500的方框圖。如圖所示,DBMS110包括但不限于數(shù)據(jù)庫引擎500和復(fù)制管理器510。數(shù)據(jù)庫引擎500控制標(biāo)準(zhǔn)數(shù)據(jù)庫功能,比如讀取、寫入、查詢和其它數(shù)據(jù)庫管理工具。雖然圖5描述管理主數(shù)據(jù)庫115和備用數(shù)據(jù)庫117的DBMS110,不過,本發(fā)明的實施例還可包括用于主數(shù)據(jù)庫115和備用數(shù)據(jù)庫117的獨立DBMS,每個DBMS具有它自己的數(shù)據(jù)庫引擎500和復(fù)制管理器510的實例。復(fù)制管理器510是配置成在備用數(shù)據(jù)庫在線時,驗證在日志傳送物理數(shù)據(jù)庫復(fù)制環(huán)境中,備用數(shù)據(jù)庫與主數(shù)據(jù)庫同步的應(yīng)用。在一個實施例中,如上所述,復(fù)制管理器510的驗證處理是意圖作為為了通過日志傳送,進行日志重放(復(fù)制)而已存在的DBMS110的日志重放組件的一部分進行的。在這樣的實施例中,復(fù)制管理器510通過增加通過確保關(guān)于所涉及的各個頁面的其它較早重放已結(jié)束,然后進行下面說明的確認,處理新的驗證日志記錄的邏輯,來增強DBMS110。在一個實施例中,復(fù)制管理器510被配置成進行上面詳細說明的一系列操作,以便在備用數(shù)據(jù)庫在線時,驗證日志傳送物理數(shù)據(jù)庫復(fù)制環(huán)境中的備用數(shù)據(jù)庫。在一個實施例中,復(fù)制管理器510選擇主數(shù)據(jù)庫中的一組頁面,并生成包含在特定時間或序列、關(guān)于每個所選頁面計算的校驗和值的事務(wù)日志。復(fù)制管理器510隨后利用事務(wù)日志中的信息驗證備用數(shù)據(jù)庫。在一個實施例中,復(fù)制管理器510為備用數(shù)據(jù)庫中的每個頁面計算校驗和值,并比較該校驗和值與事務(wù)日志中的對應(yīng)值,以驗證備用數(shù)據(jù)庫。在一個實施例中,當(dāng)關(guān)于備用數(shù)據(jù)庫中的各個頁面計算的校驗和值不匹配主數(shù)據(jù)庫中的對應(yīng)值時,復(fù)制管理器510提醒用戶。在一個實施例中,當(dāng)關(guān)于備用數(shù)據(jù)庫的每個頁面計算的校驗和值與主數(shù)據(jù)庫的每個頁面的對應(yīng)校驗和值匹配時,復(fù)制管理器510證實備用數(shù)據(jù)庫與主數(shù)據(jù)庫同步。在一些實施例中,在驗證備用數(shù)據(jù)庫的同時,復(fù)制管理器對備用數(shù)據(jù)庫進行自洽性檢查。圖6按照本發(fā)明的一個實施例,圖解說明包含在于圖2的步驟210生成的事務(wù)日志112中的記錄的方框圖。如圖所示,每條記錄6101-N包括頁面標(biāo)識符620、校驗和值630和時間戳640。如上所述,代替時間戳640,可以實現(xiàn)維護定時/排序的任何內(nèi)部機構(gòu)。對于事務(wù)日志中的每條記錄6101-N,為備用數(shù)據(jù)庫117中對應(yīng)于P1-N的頁面,計算校驗和,隨后比較該校驗和與校驗和值C1-N,這將產(chǎn)生T1-N當(dāng)前的驗證結(jié)果。從而,本發(fā)明的實施例允許在線地比較和確認主數(shù)據(jù)庫和備用數(shù)據(jù)庫。這種方案不需要使主數(shù)據(jù)庫停止工作(即使暫時地),和/或?qū)χ鲾?shù)據(jù)庫或備用數(shù)據(jù)庫強加整個數(shù)據(jù)庫方面的一致性。此外,這種方法不需要使備用數(shù)據(jù)庫離線,把備用數(shù)據(jù)庫轉(zhuǎn)換成主數(shù)據(jù)庫,或者產(chǎn)生備用數(shù)據(jù)庫的快照,以進行數(shù)據(jù)庫的主副本和備用副本之間的完全確認和比較。通過利用這里說明的數(shù)據(jù)庫日志,可以在線完成這種比較,而不管數(shù)據(jù)庫的主副本和備用副本從不同時代表完全相同的時刻的事實。相反,數(shù)據(jù)庫日志提供當(dāng)事務(wù)發(fā)生并且用主數(shù)據(jù)庫和備用數(shù)據(jù)庫處理時,驗證同步的滾動(rolling)處理。即,備用數(shù)據(jù)庫同步狀態(tài)是按照數(shù)據(jù)庫日志的順序評估的,以致正好在備用數(shù)據(jù)庫的內(nèi)容應(yīng)該與在主數(shù)據(jù)庫出現(xiàn)該日志記錄(和校驗和操作)時主數(shù)據(jù)庫具有的內(nèi)容匹配的時候,發(fā)生所述評估。就絕對時鐘時間來說,這可能相隔幾亞秒到幾小時,不過就在主數(shù)據(jù)庫生成的數(shù)據(jù)庫日志中反映的數(shù)據(jù)庫歷史時間來說是相同。雖然上面說明了本發(fā)明的實施例,但是可以設(shè)想本發(fā)明的其它更多實施例,而不脫離本發(fā)明的基本范圍,以及本發(fā)明的范圍由所附的權(quán)利要求限定。