課程資源復(fù)試數(shù)據(jù)庫(kù)chlog savepoint_第1頁(yè)
課程資源復(fù)試數(shù)據(jù)庫(kù)chlog savepoint_第2頁(yè)
課程資源復(fù)試數(shù)據(jù)庫(kù)chlog savepoint_第3頁(yè)
課程資源復(fù)試數(shù)據(jù)庫(kù)chlog savepoint_第4頁(yè)
課程資源復(fù)試數(shù)據(jù)庫(kù)chlog savepoint_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1undo日志中的檢查點(diǎn)檢查點(diǎn)(checkpoint)上述恢復(fù)過程需要掃描整個(gè)undo日志文件,為了降低數(shù)據(jù)庫(kù)故障恢復(fù)的開銷,可以定期地在日志文件中插入檢查點(diǎn)。在日志中插入檢查點(diǎn)的處理過程包括:系統(tǒng)停止接受‘啟動(dòng)新事務(wù)的請(qǐng)求’;等到所有當(dāng)前活躍的事務(wù)被提交或中止,并且在日志中寫入了<CommitT>或<AbortT>記錄;將日志記錄刷新到磁盤;寫入日志記錄<CKPT>,并再次刷新日志;重新開始接受新的事務(wù)。2undo日志中的檢查點(diǎn)在進(jìn)行故障恢復(fù)時(shí),只要逆向掃描到第一條<CKPT>記錄(最后一個(gè)被記入日志的檢查點(diǎn))就可以結(jié)束故障恢復(fù)工作。3設(shè)置檢查點(diǎn)的例子日志的開始情況如圖1所示undo日志<StartT1><T1,A,5><StartT2><T2,B,10>圖1圖2<T1,D,20><T3,E,25><StartT3><CKPT><CommitT2><CommitT1><T2,C,15><T2,B,10><StartT2><T1,A,5><StartT1>undo日志假設(shè)現(xiàn)在需要插入一個(gè)檢查點(diǎn),則插入檢查點(diǎn)后的日志可能如圖2所示4undo日志中的檢查點(diǎn)非靜止檢查點(diǎn)在設(shè)置檢查點(diǎn)的過程中,允許新的事務(wù)進(jìn)入系統(tǒng)。設(shè)置‘非靜止檢查點(diǎn)’的步驟包括寫入日志記錄<StartCKPT(T1,…,Tk)>,并刷新日志;T1,…,Tk是當(dāng)前所有活躍事務(wù)的標(biāo)識(shí)符等待T1,…,Tk中的每一個(gè)事務(wù)的提交或中止,但允許開始執(zhí)行其它新的事務(wù);當(dāng)T1,…,Tk都已經(jīng)完成時(shí),寫入日志記錄<EndCKPT>并刷新日志。5設(shè)置非靜止檢查點(diǎn)的例子undo日志<StartT1><T1,A,5><StartT2><T2,B,10><StartCKPT(T1,T2)><T2,C,15><StartT3><T1,D,20><CommitT1><T3,E,25><CommitT2><EndCKPT><T3,F,30>圖36帶有非靜止檢查點(diǎn)日志的恢復(fù)從日志尾部向后掃描日志文件進(jìn)行故障恢復(fù)。如果先遇到<EndCKPT>記錄,則繼續(xù)向后掃描,直到出現(xiàn)對(duì)應(yīng)的<StartCKPT(…)>記錄就可以結(jié)束故障恢復(fù)工作,在這之后的日志記錄是沒有用處的,可以被拋棄。如果先遇到<StartCKPT(T1,…,Tk)>記錄,此種情況下的故障恢復(fù)工作需要撤消兩類事務(wù)的操作:在<StartCKPT(T1,…,Tk)>記錄之后啟動(dòng)的事務(wù)在掃描到<StartCKPT(T1,…,Tk)>記錄時(shí),這類事務(wù)的操作已經(jīng)被撤消。T1,…,Tk中在系統(tǒng)崩潰前尚未完成的事務(wù)繼續(xù)向后掃描日志,直至其中未完成事務(wù)的訪問操作被全部撤消。7帶有非靜止檢查點(diǎn)的故障恢復(fù)(圖4)undo日志……<StartT1><T1,A,5><StartT2><T2,B,10><StartCKPT(T1,T2)><T2,C,15><StartT3><T1,D,20><CommitT1><T3,E,25>到這里undo操作就可以結(jié)束!對(duì)于已提交事務(wù)(T1)的日志記錄不做任何處理undo所有未提交事務(wù)(T2,T3)的操作8redo日志中的檢查點(diǎn)redo日志的檢查點(diǎn)在redo日志中插入檢查點(diǎn)時(shí),由于已提交事務(wù)所做的修改被寫入數(shù)據(jù)庫(kù)磁盤的時(shí)間可能比事務(wù)提交的時(shí)間要晚得多,因此在插入檢查點(diǎn)時(shí),不僅僅需要考慮當(dāng)前有哪些事務(wù)是活躍的,還要確保當(dāng)前已提交事務(wù)的所有修改被寫入到數(shù)據(jù)庫(kù)的磁盤中去。為了做到這一點(diǎn),系統(tǒng)必須知道:有哪些內(nèi)存緩沖區(qū)被修改過,但還沒有將修改結(jié)果寫入磁盤?每一個(gè)內(nèi)存緩沖區(qū)都被哪些事務(wù)修改過?每個(gè)事務(wù)修改后的結(jié)果是什么?9redo日志中的檢查點(diǎn)在redo日志中插入(非靜止)檢查點(diǎn)的步驟寫入日志記錄<StartCKPT(T1,…,Tk)>,并刷新日志;其中:T1,…,Tk是當(dāng)前所有活躍事務(wù)的標(biāo)識(shí)符同時(shí)獲得當(dāng)時(shí)所有已提交事務(wù)的標(biāo)識(shí)符集合S將集合S中的事務(wù)已經(jīng)寫到內(nèi)存緩沖區(qū)但還沒有寫到數(shù)據(jù)庫(kù)磁盤的數(shù)據(jù)寫入磁盤;寫入日志記錄<EndCKPT>并刷新日志。不必等待事務(wù)T1,…,Tk或新開始事務(wù)的結(jié)束10圖5帶有非靜止檢查點(diǎn)的redo日志redo日志<StartT1><T1,A,5><StartT2><CommitT1><T2,B,10><StartCKPT(T2)><T2,C,15><StartT3><T3,D,20><EndCKPT><CommitT2><CommitT3>11redo日志中的檢查點(diǎn)使用帶檢查點(diǎn)的redo日志的恢復(fù)尋找最后一個(gè)被記入日志的檢查點(diǎn)記錄:如果是<EndCKPT>(記為記錄Et),假設(shè)與之相對(duì)應(yīng)的檢查點(diǎn)記錄是<StartCKPT(T1,…,Tk)>(記為記錄St),并找到最早出現(xiàn)的<StartTi>(記為記錄ti),則故障恢復(fù)方法如下:針對(duì)事務(wù)T1,…,Tk以及在St之后開始的那些事務(wù),重做其中已經(jīng)被提交的事務(wù)12例:使用帶有檢查點(diǎn)的redo日志進(jìn)行恢復(fù)redo日志<StartT1><T1,A,5><StartT2><CommitT1><T2,B,10><StartCKPT(T2)><T2,C,15><StartT3><T3,D,20><EndCKPT><CommitT2>系統(tǒng)崩潰從這里開始redo操作在<StartCKPT(T2)>之前已經(jīng)結(jié)束的事務(wù)(T1)不必處理重做在<StartCKPT(T2)>之后,崩潰發(fā)生之前已經(jīng)被提交的事務(wù)(T2)重做在<StartCKPT(T2)>之后,崩潰發(fā)生之前已經(jīng)被提交的事務(wù)(T2)最后為尚未結(jié)束事務(wù)(T3)加入結(jié)束標(biāo)志<AbortT3>13redo日志中的檢查點(diǎn)使用帶檢查點(diǎn)的redo日志的恢復(fù)(續(xù))尋找最后一個(gè)被記入日志的檢查點(diǎn)記錄:如果是<StartCKPT(T1,…,Tk)>(記為記錄St1),我們繼續(xù)尋找前一個(gè)<EndCKPT>(記為記錄Et2),以及與Et2相對(duì)應(yīng)的<StartCKPT(S1,…,Sm)>(記為記錄St2),則故障恢復(fù)方法如下:就如同日志記錄Et2是日志文件中的最后一條檢查點(diǎn)(<EndCKPT>記錄)記錄一樣進(jìn)行恢復(fù)。14undo/redo日志中的檢查點(diǎn)在undo/redo日志中插入檢查點(diǎn)寫入日志記錄<StartCKPT(T1,…,Tk)>,并刷新日志。其中:T1,…,Tk是當(dāng)前所有活躍事務(wù)的標(biāo)識(shí)符;將所有被修改過的緩沖區(qū)寫到數(shù)據(jù)庫(kù)的磁盤中去;寫入日志記錄<EndCKPT>并刷新日志。15帶有檢查點(diǎn)的undo/redo日志的例子undo/redo日志1<StartT1>2<T1,A,4,5>3<StartT2>4<CommitT1>5<T2,B,9,10>6<StartCKPT(T2)>7<T2,C,14,15>8<StartT3>9<T3,D,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論