




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1undo日志中的檢查點(diǎn)檢查點(diǎn)(checkpoint)上述恢復(fù)過程需要掃描整個(gè)undo日志文件,為了降低數(shù)據(jù)庫故障恢復(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ù)庫磁盤的時(shí)間可能比事務(wù)提交的時(shí)間要晚得多,因此在插入檢查點(diǎn)時(shí),不僅僅需要考慮當(dāng)前有哪些事務(wù)是活躍的,還要確保當(dāng)前已提交事務(wù)的所有修改被寫入到數(shù)據(jù)庫的磁盤中去。為了做到這一點(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ù)庫磁盤的數(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ù)庫的磁盤中去;寫入日志記錄<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)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)房地產(chǎn)開發(fā)項(xiàng)目可行性研究報(bào)告-0
- 深圳中小企業(yè)應(yīng)對(duì)金融危機(jī)的策略
- 鋼筋后臺(tái)下料協(xié)議書
- 遺體接運(yùn)冷藏協(xié)議書
- ufc格斗傷亡協(xié)議書
- 車間住宿管理協(xié)議書
- 金融投資咨詢協(xié)議書
- 項(xiàng)目收益兜底協(xié)議書
- 銀行特約存款協(xié)議書
- 長久發(fā)展入股協(xié)議書
- 子宮內(nèi)膜癌的影像診斷與鑒別診斷
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評(píng)價(jià)導(dǎo)則
- 人體解剖學(xué)第一章緒論
- JJG 635-2011二氧化碳紅外氣體分析器
- 【真題】2023年鎮(zhèn)江市中考道德與法治試卷(含答案解析)
- 法院強(qiáng)制執(zhí)行申請(qǐng)書標(biāo)準(zhǔn)范文
- 索緒爾“語言”和“言語”概念研究
- 2024年地板行業(yè)分析報(bào)告及未來發(fā)展趨勢
- 2020-心肌梗死后心力衰竭防治專家共識(shí)
- 經(jīng)典成語故事望梅止渴
- 二級(jí)公立醫(yī)院績效考核三級(jí)手術(shù)目錄(2020版)
評(píng)論
0/150
提交評(píng)論