欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

主存儲器事務處理系統(tǒng)中的高度并行日志和恢復操作的方法和系統(tǒng)的制作方法

文檔序號:6647194閱讀:385來源:國知局
專利名稱:主存儲器事務處理系統(tǒng)中的高度并行日志和恢復操作的方法和系統(tǒng)的制作方法
技術領域
本發(fā)明涉及主存儲器事務處理系統(tǒng)。具體涉及用于事務處理系統(tǒng)中的主存儲器數(shù)據(jù)庫的恢復的日志方法和系統(tǒng)。
背景技術
事務處理系統(tǒng)必須以這樣的方式處理事務即使在發(fā)生諸如系統(tǒng)故障的情況下,也保持一致性和持續(xù)性。當最小單位和一致方式執(zhí)行事務時保持數(shù)據(jù)的一致性,使得數(shù)據(jù)從最初的一種一致狀態(tài)轉換成另一種一致狀態(tài)。當通過“提交”事務(成功完成的事務)改變數(shù)據(jù)時保持數(shù)據(jù)的持續(xù)性使系統(tǒng)免于故障。數(shù)據(jù)庫通常指事務所處理的數(shù)據(jù)。
為了實現(xiàn)數(shù)據(jù)庫的一致性和持續(xù)性,多數(shù)事務處理系統(tǒng)執(zhí)行一個所謂日志的處理(根據(jù)日志文件中日志記錄來記錄更新的處理)。在出現(xiàn)故障的情況下,這些日志記錄用于撤消(Undo)由未完成事務造成的變化,從而把數(shù)據(jù)庫恢復到故障前的一致狀態(tài)。這些日志記錄也用于重做(Redo)由提交事務造成的變化,從而維持持續(xù)的數(shù)據(jù)庫。
在系統(tǒng)出現(xiàn)崩潰后,僅利用日志記錄來恢復一致的和持續(xù)的數(shù)據(jù)庫將需要大量的日志數(shù)據(jù),這是因為從數(shù)據(jù)庫創(chuàng)建起所生成的所有日志記錄必須被保存。因此,在把數(shù)據(jù)庫定期復制到磁盤時,通常使用所謂“檢查(checkpoingting)”的處理,從而僅需要存儲最后檢查處理以來所生成的日志記錄。實際中,數(shù)據(jù)庫中的每頁具有一個表示由事務作的任何修改的“修改標志(dirty flag)”,從而僅把最后檢查處理以來修改的頁復制到磁盤。
圖1示出了主存儲器數(shù)據(jù)庫管理系統(tǒng)(DBMS)的常規(guī)恢復結構,其中維護兩個備份(101和102)和一個日志(103)。一個單獨的檢查處理僅更新備份中的一個,連續(xù)的檢查處理在兩個備份之間交替。為了協(xié)調這種交替,每個存儲器內的數(shù)據(jù)庫頁具有兩個修改標志(dirty flag)。當檢查處理修改一頁時,設定兩個標志表示由事務進行了修改。當檢查處理用該頁更新(flush)第一備份時,復位第一標志以表示針對第一備份不再需要進行檢查處理。類似地,當連續(xù)檢查處理用該頁更新第二備份時,復位第二標志。
圖2示出了一個利用主存儲器DBMS中的數(shù)據(jù)庫備份和日志的常規(guī)重啟處理。該重啟處理包括以下四個步驟第一,把最新備份讀入主存儲器(用BR表示“backup read(備份讀取)”)(201);第二,把數(shù)據(jù)庫恢復為備份時的狀態(tài)(用BR表示“backup play(備份再現(xiàn))”)(202);第三,把日志記錄讀入主存儲器(用LR表示“l(fā)og read(日志讀取)”)(203);第四,使用這些日志記錄把數(shù)據(jù)庫恢復為最新一致狀態(tài)(用LP表示“l(fā)og play(日志再現(xiàn))”)(204)。
圖3a和3b是常規(guī)的兩遍日志再現(xiàn)處理(two-pass log-play process)的流程圖。為了把數(shù)據(jù)庫恢復為最新一致狀態(tài),由提交事務生成的所有日志記錄需要被再現(xiàn),但由所謂的“l(fā)oser transactions(失敗事務)”生成的日志記錄(當系統(tǒng)崩潰時是激活的)必須被跳過(當存在一個匹配事務開始日志記錄但沒有事務結束記錄時,事務被稱為一個失敗事務(loser))。為此,從檢查開始日志記錄到日志結束對日志進行掃描所遇到的日志記錄被再現(xiàn)(307)。然后,由失敗事務作的日志記錄造成的改變被回滾(roll back)(308)。
為了識別失敗事務,維護一個失敗事務表(LTT),該表有兩個域,TID和Last LSN。用記錄在檢查開始日志記錄中的激活事務初始化該表(301)。當遇到一個事務開始記錄時(302),在LTT中生成一個匹配登錄項(305)。當遇到一個事務結束(提交或異常中斷)記錄時(303),從LTT中刪除該匹配登錄項(306)。否則(304),當前日志記錄的LSN被記錄在匹配LTT登錄項的Last LSN域中(307)。當達到該日志結尾時,仍在LTT中的具有匹配登錄項的事務被看作失敗事務。利用匹配LTT登錄項的Last LSN域可以定位失敗事務的最新記錄,通過向后(backward)追蹤訪問日志記錄的Last LSN域定位該事務的其他記錄。
當使用現(xiàn)有技術的物理日志方法時,在LP處理期間,必須以日志記錄生成順序再現(xiàn)日志記錄。即,必須先使用較早生成的日志來重做一些更新。由于撤消和重做的操作沒有交換性和結合性,常規(guī)日志方法實行依次排序。這種依次排序要求對系統(tǒng)設計造成很多限制。
例如,把整個數(shù)據(jù)庫保存在主存儲器的主存儲器DBMS中,對日志的磁盤訪問成為系統(tǒng)性能上的瓶頸。為了減少這樣的瓶頸,可以構想采用多個日志磁盤來分配處理。但是,使用多個日志磁盤對常規(guī)日志方法是不容易實現(xiàn)的,這是因為在LP步驟中存在一個以生成順序合并日志記錄的系統(tǒng)開銷。
因此,需要一種有效的日志系統(tǒng),該系統(tǒng)適合于分布處理中的大量并行操作。

發(fā)明內容
本發(fā)明的一個目的是提供一種有效的日志方法,在出現(xiàn)故障后可以使用該方法來恢復事務處理系統(tǒng)。
本發(fā)明的另一個目的是提供一種可以進行并行操作的日志方法。
利用差分日志方法可以實現(xiàn)本發(fā)明中的上述目的和其他目的,該方法允許進行具有交換性和結合性的恢復操作。該方法包括以下步驟在數(shù)據(jù)庫更新前取得主存儲器中的數(shù)據(jù)庫的前映象;在更新后取得數(shù)據(jù)庫的后映象;通過在前映象和后映象之間進行按位異或(XOR)運算來生成日志;以及在所述一個或更多日志和數(shù)據(jù)庫之間進行XOR運算來執(zhí)行撤消或重做操作。


圖1是整個數(shù)據(jù)庫都保存到主存儲器中的主存儲器數(shù)據(jù)庫管理系統(tǒng)的常規(guī)恢復結構的系統(tǒng)圖;圖2是發(fā)生系統(tǒng)崩潰時常規(guī)的恢復結構中使用的重啟處理的流程圖;圖3a和3b是在系統(tǒng)重啟期間,常規(guī)的恢復結構中使用的兩遍日志再現(xiàn)處理的流程圖;圖4是本發(fā)明中用于捕捉數(shù)據(jù)庫中的變化的更新日志記錄的結構圖;圖5是在重啟過程期間,對本發(fā)明的更新日志記錄進行的重做和撤消運算的演示圖;圖6a至6e是本發(fā)明中差分記錄方法和現(xiàn)有技術中物理記錄方法的比較圖;圖7a和7b是本發(fā)明中用來從一致檢查方法制作的備份來恢復數(shù)據(jù)庫的一遍記錄再現(xiàn)處理的流程圖;圖8a和8b是本發(fā)明中用來在不阻止其他事務的狀態(tài)下進行備份的模糊檢查處理的流程圖;圖9是本發(fā)明中與模糊檢查一起使用的更新處理流程圖;圖10a和10b是本發(fā)明中用來從模糊檢查方法制作的備份中恢復數(shù)據(jù)庫的修改的兩遍記錄再現(xiàn)處理流程圖;圖11a和11b是本發(fā)明中用來從模糊檢查方法制作的備份中恢復數(shù)據(jù)庫的修改的一遍記錄再現(xiàn)處理流程圖;圖12是本發(fā)明的日志結構的實施例圖,其中使用多個日志磁盤以分布日志記錄并使能進行并行日志;圖13是本發(fā)明的重啟結構的實施例圖,其中使用多個日志磁盤和備份磁盤以使能進行并行重啟;圖14是本發(fā)明中用來利用多個日志磁盤及備份磁盤來盡可能迅速地恢復數(shù)據(jù)庫的完全并行重啟處理的流程圖;圖15是本發(fā)明的完全并行重啟處理中使用的備份載入器(BL)模塊的實施例圖;圖16是在磁盤傳送日志記錄比單個CPU處理速度快時,本發(fā)明的完全并行重啟處理中使用的日志載入器(LL)模塊的實施例圖;圖17是在磁盤傳送日志記錄比單個CPU處理速度快時,本發(fā)明的完全并行重啟處理中使用的日志載入器(LL)模塊的另一個實施例圖;具體實施方式
圖4示出了本發(fā)明中使用的更新日志記錄和數(shù)據(jù)庫頁的結構。假設一種存儲結構數(shù)據(jù)庫由多個固定大小(side)的頁組成,每頁具有許多槽(slot)。不同的存儲結構可以有修改,但此修改應該對本領域的技術人員而言是顯而易見的。本發(fā)明的優(yōu)選實施例使用至少五類日志記錄事務開始,事務結束,更新,檢查開始和檢查結束。前兩類用于記錄事務的開始和結束,而后兩類用于記錄檢查處理的開始和結束。
用于存儲數(shù)據(jù)庫中的改變的更新日志記錄包括一個日志首部和一個日志主體。圖4示出了根據(jù)優(yōu)選實施例的日志首部中的不同的域。通過優(yōu)先在磁盤上存儲日志記錄的物理地址,“LSN(日志順序號)”域存儲當前日志記錄的識別符。“TID(事務ID)”域存儲與當前日志記錄有關的事務的識別符。“PrevLSN”域存儲由同一個事務最新生成的日志記錄的識別符,使得方便地利用該信息鏈接事務的日志記錄以快速向后檢索?!邦愋汀庇虼鎯θ罩居涗浀念愋??!皞浞軮D”域存儲日志記錄和變化的頁之間的關系。僅當使用模糊檢查方法(在下面的圖8a和8b中進行說明)時需要維持該域?!绊揑D”域存儲發(fā)生更新的頁的識別符?!捌屏俊庇虼鎯撝邪l(fā)生更新的槽的識別符,“大小”域存儲更新槽的大小。
日志記錄的主體存儲差分日志信息。特別地,其存儲數(shù)據(jù)庫更新前的數(shù)據(jù)映象(“前映象”)和數(shù)據(jù)庫更新后的數(shù)據(jù)映象(“后映象”)之間的按位XOR運算結果。僅存儲差分的差分日志方法不同于把前映象和后映象都存儲的常規(guī)物理日志方法。例如,如果前映象是“0011”、后映象是“0101”,則本發(fā)明僅存儲差分,即,XOR結果“0110”。
圖5示出了在重啟處理期間,對本發(fā)明的更新日志記錄進行的重做和撤消操作。首先,參考日志首部以查找數(shù)據(jù)庫中與當前日志記錄有關的位置。在優(yōu)選實施例中,從日志首部中找到的“頁ID”和“槽ID”信息中確定該位置。通過在該位置中找到的數(shù)據(jù)和當前日志記錄的日志主體之間進行XOR運算,以及把該XOR結果寫入該位置的方式執(zhí)行重做和撤消操作。與常規(guī)物理日志方法不同,在本發(fā)明的重做操作和撤消操作之間沒有差異。
圖6a至6e示出了本發(fā)明的差分日志方法和現(xiàn)有技術的物理日志方法之間的比較。由于常規(guī)物理日志方法中的操作不具有交換性和結合性,則必須例如,以日志記錄生成的順序執(zhí)行重做操作。
考慮一種情況在處理了3個事務(如圖6a中的T1,T2和T3)之后發(fā)生系統(tǒng)崩潰。假設這些事務以0,7,6和14的順序改變了數(shù)據(jù)庫的一個槽中的4位整數(shù)。圖6b和6c分別示出了使用常規(guī)日志方法和差分日志方法時,隨著槽映象改變所生成的一系列日志記錄。常規(guī)日志記錄的主體域中包含前映象和后映象,而差分日志記錄的主體域中僅包含前映象和后映象間的差異。
當系統(tǒng)崩潰時,如果以與原始順序相同的順序進行重做操作,則兩種日志方法都將產(chǎn)生正確的恢復。圖6d示出了通過以日志記錄生成順序進行重做操作,兩種日志方法恢復的正確值14。注意到,常規(guī)日志方法的重做操作把后映象復制到數(shù)據(jù)庫的相應槽中。
但是,如果以與原始順序不同的順序進行重做操作,在常規(guī)日志方法中將不可能產(chǎn)生正確的恢復。與此相反,不管以何順序應用日志記錄,本發(fā)明的差分日志方法都能獲得正確的重建。圖6e示出了進行重做操作的不同順序的結果。通過差分日志方法,不管以何順序進行重做操作都產(chǎn)生一個正確的恢復結果。在數(shù)據(jù)庫主要被存儲在主存儲器的主存儲器DBMS和數(shù)據(jù)庫主要被存儲在磁盤的磁盤駐留DBMS都可以應用該差分日志方法。
圖7a和7b是本發(fā)明中用來從利用一致檢查方法制作的備份來恢復數(shù)據(jù)庫的一遍記錄再現(xiàn)處理的流程圖。存在兩類一致檢查方法事務一致和動作一致。“事務一致”表示在檢查期間沒有正在進行的更新事務。也就是說,僅在完成了所有正在進行的更新事務之后,才可以開始事務一致檢查處理,并在完成檢查處理之前不能開始更新事務?!皠幼饕恢隆北硎驹跈z查處理期間沒有正在進行的更新動作。當利用一致檢查方法時,圖3a和3b中的兩遍日志再現(xiàn)處理可以直接使用本發(fā)明的差分日志方法。
本發(fā)明的一個優(yōu)點是可以通過只掃描日志一次來完成日志再現(xiàn)處理。在本發(fā)明的一遍日志再現(xiàn)處理中,以與日志記錄生成次序相反的方向(即,從日志結尾起)掃描日志記錄。當向后掃描日志時,在遇到該事務的任何其它日志記錄前先遇到事務結束日志記錄。當遇到一個異常中斷事務時,不需要再現(xiàn)該事務的記錄。也就是說,一旦識別到提交事務,僅再現(xiàn)該提交事務的記錄,跳過該異常中斷事務的記錄。
由于針對失敗事務不做任何處理,以與異常中斷事務相同的方式處理之。如上所述,在常規(guī)方法中,針對所有的事務,必須以日志記錄生成的次序執(zhí)行重做操作??梢蕴^失敗事務的重做操作,但由于無法預先確定事務是否是失敗事務,所以即使針對那些可能是失敗事務的事務,也進行重做操作。因此,針對那些失敗事務,在識別之后需要進行撤消操作。
圖8a和8b是本發(fā)明中用來在不阻止其他事務的狀態(tài)下進行備份的模糊檢查處理的流程圖?!澳:龣z查”表示可以并行進行更新事務和檢查處理。通常模糊檢查優(yōu)于一致檢查,這是因為其允許在檢查期間進行其他的事務。
當與本發(fā)明的差分日志方法一起使用模糊檢查時,必須解決兩個同步問題以正確恢復數(shù)據(jù)庫。首先,盡管只要更新事務和檢查處理應用到不同頁就可以并行進行兩個處理,但在事務更新同一頁時的檢查期間,數(shù)據(jù)庫頁不被備份。否則,復制前映象和后映象的混合使得很難正確地從故障恢復。為了解決第一個問題,本發(fā)明提供了一種同步機制,使得在一種鎖定狀態(tài)下(如最小單元)進行備份頁處理和更新頁處理(808和811)。
其次,需要一種機制來確定備份頁是否反映日志記錄創(chuàng)建后或日志記錄創(chuàng)建前的數(shù)據(jù)庫。如果在日志記錄創(chuàng)建后進行該備份,則不必再現(xiàn)該日志記錄,這是因為日志記錄已經(jīng)反映了該變化。由于本發(fā)明利用XOR運算進行重做和撤消操作,所以需要一種機制來確定是否再現(xiàn)一個日志記錄。為了解決第二個問題,本發(fā)明在每頁中保持一個存儲最新備份識別符的域(809),并把它復制到日志記錄中。
圖9是本發(fā)明中與圖8a和8b的模糊檢查處理一起使用的更新處理流程圖。為了解決上述兩個同步問題,在鎖定狀態(tài)下更新一頁(901和907),并把存儲在頁中的備份ID復制到更新日志記錄中(903)。為了更新頁,該頁的鎖首先需要進入鎖定狀態(tài)(901)。然后,更新前創(chuàng)建一個更新日志記錄(902),并把頁首部中的備份ID復制到日志記錄中(903)。然后,更新該頁(904),并設定頁首部中的所有修改標志(905)。如上所述,存在兩個修改標志兩個備份的每一個具有一個修改標志。最后,把日志記錄添加到日志緩沖器(906),并打開鎖(907)。
圖10a和10b是本發(fā)明中用來從利用模糊檢查處理制作的備份中恢復數(shù)據(jù)庫的修改的兩遍記錄再現(xiàn)處理流程圖。與圖3a和3b的兩遍記錄再現(xiàn)處理不同的是采取一個特定動作以更新位于檢查開始記錄和匹配的檢查結束記錄之間的日志記錄。針對這種日志記錄,把記錄中的備份ID和日志記錄涉及的頁中存儲的備份ID進行比較。如果兩個ID相同(1002),則表示在備份頁之后創(chuàng)建了日志記錄。由于該頁沒有反映出日志記錄的變化,所以需要再現(xiàn)日志記錄。但,如果兩個ID不同,則表示在備份頁之前創(chuàng)建了日志記錄。由于該頁已經(jīng)具有對應于日志記錄的變化,所以不必再現(xiàn)該日志記錄。在遇到檢查結束記錄之后,進行與圖3a和3b所示相同的步驟(1001)。
圖11a和11b是本發(fā)明中用來從由模糊檢查處理制作的備份中恢復數(shù)據(jù)庫的修改的一遍記錄再現(xiàn)處理流程圖。與圖7的一遍記錄再現(xiàn)處理不同的是采取一個特定動作以更新位于檢查結束記錄和匹配的檢查開始記錄之間的日志記錄。針對這種日志記錄,把記錄中的備份ID和日志記錄涉及的頁中存儲的備份ID進行比較。如果兩個ID相同并提交了相應的事務,則再現(xiàn)該記錄以重做記錄的變化。如果兩個ID不同并且異常中斷了相應的事務,則再現(xiàn)該記錄以撤消記錄的變化。否則跳過該記錄。
圖12是本發(fā)明的日志結構的實施例圖,其中使用多個日志磁盤以分布日志記錄并使能進行并行日志。與物理日志方法不同,差分日志方法允許把日志記錄隨意地分布到多個磁盤以提高日志性能,這是因為差分日志方法中使用的XOR的交換性和結合性使得能以一種任意順序處理日志記錄。在此實施例中,根據(jù)事務識別符(TID)把日志記錄分布到多個日志磁盤。每個日志磁盤有不同的日志管理器(1201)。當事務開始時,具有最少負載的日志管理器的識別符(LogMgrID)被指定給事務,使得由事務創(chuàng)建的日志記錄總被存儲在日志磁盤中。
圖13是本發(fā)明的重啟結構的實施例圖,其中使用多個日志磁盤和備份磁盤以使能進行并行重啟。如圖2所示,重啟處理包括4個子處理BR,BP,LR和LP。在該實施例中,利用三種并行機制來加速重啟處理。首先,對每個備份磁盤(1307)的各備份載入器(BL)(1302)進行初始化(1307),并以管道(pipeline)方式執(zhí)行BR處理(1302)和BP處理(1301)。每個BL獨立于其他BL運行。第二,對每個日志磁盤(1387)的各磁盤載入器(LL)(1305)進行初始化(1308),并以管道方式執(zhí)行LR處理(1306)和LP處理(1304)。每個LL獨立于其他LL運行。第三,甚至BL和LL并發(fā)運行。
圖14是本發(fā)明中用來利用多個日志磁盤及備份磁盤來盡可能迅速地恢復數(shù)據(jù)庫的完全并行重啟處理的流程圖。首先,數(shù)據(jù)庫中的所有頁被填充為0(1401)。由于0是XOR操作的識別符,從而允許BP處理使用該XOR操作以恢復數(shù)據(jù)庫中的頁,而不是把頁復制到數(shù)據(jù)庫。第二,分別為每個備份磁盤和日志磁盤(1402和1403)生成一個BL模塊和一個LL模塊。BL模塊和LL模塊以并行的方式獨立運行。
圖15是本發(fā)明的完全并行重啟處理中使用的備份載入器(BL)模塊的實施例圖。BL以管道方式或制造者/消耗者(producer/consumer)的方式運行BR處理(1504)和BP處理(1502)。BR處理逐頁讀取備份磁盤(1505)并把每頁添加到用做管道的頁緩沖器(1503),BP處理從緩沖器中取出一頁并將其應用到數(shù)據(jù)庫中的匹配頁(1501)。本發(fā)明的一個新穎方面在于當把備份頁再現(xiàn)到數(shù)據(jù)庫時,BP處理使用XOR操作。從而允許并發(fā)運行BL和LL,這在現(xiàn)有技術中是不可能的。
圖16是在磁盤傳送日志記錄比單個CPU處理速度快時,本發(fā)明的完全并行重啟處理中使用的日志載入器(LL)模塊的實施例圖。在此實施例中,同時執(zhí)行多個LP處理(1601)以利用多個CPU。除了LR和LP處理以外,LL模塊利用另一個處理(1604)以把日志記錄分配到多個LP處理,使得事務的所有日志記錄被指定到同一個LP處理。然后,每個LP處理可以保持事務表(1601)(例如在兩遍日志再現(xiàn)處理中使用的LTT和在一遍日志再現(xiàn)處理中本地使用的CTT和ATT)。
圖17是在磁盤傳送日志記錄比單個CPU處理速度快時,本發(fā)明的完全并行重啟處理中使用的日志載入器(LL)模塊的另一個實施例圖。在圖16的優(yōu)選實施例中,隨著并發(fā)LP處理的數(shù)量的增加,分配器處理(1604)可能會成為瓶頸。另一個問題增加了是獲取和釋放用于日志記錄隊列(1603)的鎖以同時使用它們的系統(tǒng)開銷。為了解決這些問題,在當前實施例中,LP處理(1702)直接訪問日志緩沖器(1703)并根據(jù)它們的事務識別符分配日志記錄。一種簡單的方法是使用取模操作。例如,當存在三個LP處理時,把具有除3余0的事務識別符的日志記錄分配到第一處理。
在此實施例中,每個日志緩沖器頁具有一個計數(shù)器。當LR處理(1704)把從日志磁盤讀取的數(shù)據(jù)填充到日志緩沖器頁時(1705),復位該計數(shù)器。當LP處理結束掃描緩沖器頁時,在鎖定狀態(tài)下遞增頁的計數(shù)器。然后,當該計數(shù)器具有和LP處理數(shù)量相同的值時,可以刷新緩沖器。
盡管結合優(yōu)選實施例對本發(fā)明進行了說明,但不限于那些實施例。本領域的普通的技術人員應該理解,在不背離本發(fā)明的精神和范圍的情況下,可對所述實施例的結構和形式進行修改。
權利要求
1.一種在主存儲器事務處理系統(tǒng)中對更新作日志的方法,該主存儲器事務處理系統(tǒng)具有主存儲器,用于存儲數(shù)據(jù)庫;一個或多個日志磁盤,用于存儲日志記錄,該日志記錄用于主存儲器數(shù)據(jù)庫的并行恢復;和一個或多個備份磁盤,用于存儲主存儲器數(shù)據(jù)庫的副本,該方法包括下列步驟在對數(shù)據(jù)庫進行更新之前取得數(shù)據(jù)庫的前映象;在更新之后取得數(shù)據(jù)庫的后映象;通過在前映象和后映象之間進行按位異或(XOR)運算,生成差分日志作為每個日志記錄的日志主體;通過在差分日志和前映象之間進行XOR運算,從故障中恢復。
2.根據(jù)權利要求1所述的方法,其特征在于,所述數(shù)據(jù)庫包括多個大小固定的頁。
3.根據(jù)權利要求2所述的方法,其特征在于,所述每個日志記錄具有日志首部,該日志首部包括LSN(日志順序號),用于存儲日志順序;TID(事務ID),用于存儲創(chuàng)建日志記錄的事務的識別符;前一LSN,用于存儲由同一事務最近創(chuàng)建的日志的識別符;類型,用于存儲日志記錄的類型;備份ID,用于存儲日志記錄和更新頁之間的關系以用于模糊檢查;頁ID,用于存儲更新頁的識別符;偏移量,用于存儲更新區(qū)域在更新頁中的開始偏移量;以及大小,用于存儲該更新區(qū)域的大小。
4.如權利要求1所述的方法,還包括下述檢查步驟通過不時地將主存儲器中的數(shù)據(jù)庫作為備份數(shù)據(jù)寫入所述一個或多個備份磁盤來進行檢查。
5.如權利要求4所述的方法,其特征在于,所述檢查步驟采用事務一致檢查策略。
6.如權利要求4所述的方法,其特征在于,所述檢查步驟采用動作一致檢查策略。
7.如權利要求4所述的方法,其特征在于,所述檢查步驟采用模糊檢查策略。
8.如權利要求4所述的方法,其特征在于,所述恢復步驟包括下列步驟將備份數(shù)據(jù)從所述一個或多個備份磁盤載入主存儲器數(shù)據(jù)庫;以及為了將主存儲器數(shù)據(jù)庫恢復為最近的一致狀態(tài),將日志從所述一個或多個備份磁盤載入主存儲器數(shù)據(jù)庫。
9.如權利要求8所述的方法,其特征在于,通過分割備份數(shù)據(jù)來并行執(zhí)行所述載入備份數(shù)據(jù)步驟。
10.如權利要求8所述的方法,其特征在于,所述載入日志步驟包括下列步驟從所述一個或多個日志磁盤讀取日志記錄;以及對日志記錄進行兩遍再現(xiàn)以將主存儲器數(shù)據(jù)庫恢復為最新的一致狀態(tài)。
11.如權利要求10所述的方法,其特征在于,所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟是在一個管道中執(zhí)行的。
12.如權利要求10所述的方法,其特征在于,通過分割日志記錄來并行執(zhí)行所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟。
13.如權利要求12所述的方法,其特征在于,所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟是在一個管道中執(zhí)行的。
14.如權利要求8所述的方法,其特征在于,所述載入日志步驟包括下列步驟從所述一個或多個日志磁盤讀取日志記錄;以及對日志記錄進行一遍再現(xiàn)以將主存儲器數(shù)據(jù)庫恢復為最新的一致狀態(tài)。
15.如權利要求14所述的方法,其特征在于,所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟是在一個管道中執(zhí)行的。
16.如權利要求14所述的方法,其特征在于,通過分割日志記錄來并行執(zhí)行所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟。
17.如權利要求16所述的方法,其特征在于,所述讀取日志記錄的步驟和再現(xiàn)日志記錄的步驟是在一個管道中執(zhí)行的。
18.如權利要求8所述的方法,其特征在于,還包括預先用0填充主存儲器數(shù)據(jù)庫的步驟。
19.如權利要求18所述的方法,其特征在于,所述載入備份數(shù)據(jù)的步驟包括下列步驟從所述一個或多個備份磁盤讀取備份記錄;以及通過在備份數(shù)據(jù)和主存儲器數(shù)據(jù)庫之間進行異或操作來再現(xiàn)備份數(shù)據(jù)。
20.如權利要求19所述的方法,其特征在于,所述讀取備份數(shù)據(jù)的步驟和再現(xiàn)備份數(shù)據(jù)的步驟是在一個管道中執(zhí)行的。
21.如權利要求19所述的方法,其特征在于,通過分割備份數(shù)據(jù)來并行執(zhí)行所述讀取備份數(shù)據(jù)的步驟和再現(xiàn)備份數(shù)據(jù)的步驟。
22.如權利要求21所述的方法,其特征在于,所述讀取備份數(shù)據(jù)的步驟和再現(xiàn)備份數(shù)據(jù)的步驟是在一個管道中執(zhí)行的。
23.如權利要求19所述的方法,其特征在于,所述載入備份數(shù)據(jù)的步驟和所述載入日志記錄的步驟是并行執(zhí)行的。
24.一種允許從故障中恢復的事務處理系統(tǒng),包括主存儲器,用于存儲數(shù)據(jù)庫;一個或多個日志磁盤,用于存儲日志記錄,該日志記錄用于并行恢復主存儲器數(shù)據(jù)庫;一個或多個備份磁盤,用于存儲主存儲器數(shù)據(jù)庫的副本;差分日志生成裝置,用于通過在對數(shù)據(jù)庫進行更新之前的數(shù)據(jù)庫的前映象和更新之后的數(shù)據(jù)庫的后映象之間進行按位異或(XOR)操作,生成差分日志作為日志主體的一部分;以及恢復裝置,用于通過在差分日志和前映象之間進行XOR操作,從故障中恢復。
25.如權利要求24所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫包括多個大小固定的頁。
26.如權利要求24所述的系統(tǒng),其特征在于,還包括檢查裝置,該裝置用于通過不時地將主存儲器中的數(shù)據(jù)庫作為備份數(shù)據(jù)寫入所述一個或多個備份磁盤來進行檢查。
27.如權利要求26所述的系統(tǒng),其特征在于,所述檢查裝置采用事務一致檢查策略。
28.如權利要求26所述的系統(tǒng),其特征在于,所述檢查裝置采用動作一致檢查策略。
29.如權利要求26所述的系統(tǒng),其特征在于,所述檢查裝置采用模糊檢查策略。
30.如權利要求26所述的系統(tǒng),其特征在于,所述恢復裝置包括用于將備份數(shù)據(jù)載入主存儲器數(shù)據(jù)庫的裝置;以及用于將日志載入主存儲器數(shù)據(jù)庫的裝置。
31.如權利要求30所述的系統(tǒng),其特征在于,用于載入備份數(shù)據(jù)的裝置包括用于從一個或多個備份磁盤讀取備份數(shù)據(jù)的裝置;以及用于通過在備份數(shù)據(jù)和主存儲器數(shù)據(jù)庫之間進行XOR操作再現(xiàn)備份數(shù)據(jù)以將主存儲器數(shù)據(jù)庫恢復為制作備份時的狀態(tài)的裝置。
32.如權利要求30所述的系統(tǒng),其特征在于,用于載入日志的裝置包括用于從日志磁盤讀取日志記錄的裝置;以及用于對日志記錄進行兩遍再現(xiàn)以將主存儲器數(shù)據(jù)庫恢復為最新的一致狀態(tài)的裝置。
33.如權利要求30所述的系統(tǒng),其特征在于,用于載入日志的裝置包括用于從日志磁盤讀取日志記錄的裝置;以及用于對日志記錄進行一遍再現(xiàn)以將主存儲器數(shù)據(jù)庫恢復為最新的一致狀態(tài)的裝置。
34.一種計算機可讀存儲介質,其包含用于在主存儲器事務處理系統(tǒng)中對更新作日志的程序,該主存儲器事務處理系統(tǒng)具有主存儲器,用于存儲數(shù)據(jù)庫;一個或多個日志磁盤,用于存儲日志記錄,該日志記錄用于主存儲器數(shù)據(jù)庫的并行恢復;和一個或多個備份磁盤,用于存儲主存儲器數(shù)據(jù)庫的副本,該程序在CPU的控制下執(zhí)行下列步驟在對數(shù)據(jù)庫進行更新之前取得數(shù)據(jù)庫的前映象;在更新之后取得數(shù)據(jù)庫的后映象;通過在前映象和后映象之間進行按位異或(XOR)運算,生成差分日志作為每個日志記錄的日志主體;通過在差分日志和前映象之間進行XOR運算,從故障中恢復。
35.如權利要求34所述的存儲介質,其特征在于,所述介質是CD。
36.如權利要求34所述的存儲介質,其特征在于,所述介質是磁帶。
全文摘要
本發(fā)明公開了一種事務處理系統(tǒng)中從故障中恢復的有效日志方法及系統(tǒng)。該方法及系統(tǒng)是根據(jù)允許進行具有交換性和結合性的恢復操作的差分日志方法。該方法包括以下步驟在對數(shù)據(jù)庫進行更新之前取得主存儲器中的主要數(shù)據(jù)庫的前映象;在更新后取得主要數(shù)據(jù)庫的后映象;通過在該前映象和后映象之間進行按位異或(XOR)運算來生成差分日志;通過在所述一個或更多日志和前映象之間進行XOR運算來執(zhí)行redo或undo操作;由于XOR運算具有交換性和結合性,無論日志記錄生成的次序如何都可獲得正確的恢復。本發(fā)明通過減小日志記錄大小并允許恢復操作的并行執(zhí)行,改善了日志系統(tǒng)的性能。
文檔編號G06F12/00GK1454349SQ00819629
公開日2003年11月5日 申請日期2000年12月28日 優(yōu)先權日2000年6月7日
發(fā)明者車相均, 李柱昌, 金起弘 申請人:處理存儲器有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
成安县| 阿合奇县| 永济市| 太谷县| 子长县| 怀来县| 灵寿县| 乐昌市| 舟山市| 九龙坡区| 葫芦岛市| 永顺县| 宜君县| 望谟县| 东乡族自治县| 鹤岗市| 荥阳市| 南丹县| 鄂尔多斯市| 周口市| 桐城市| 德惠市| 海南省| 彭泽县| 宁都县| 东城区| 兴海县| 柏乡县| 唐山市| 本溪| 阜康市| 桐梓县| 太湖县| 天气| 荆门市| 禄劝| 禄劝| 雷山县| 洪泽县| 宿松县| 平谷区|