版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 砌體施工合同
- 常用材料采購(gòu)合同模板
- 項(xiàng)目申報(bào)策劃服務(wù)合同
- 特許加盟連鎖合同
- 車輛租賃合同協(xié)議
- 箱包購(gòu)銷合同的法律效力分析
- 展會(huì)服務(wù)合同中的展會(huì)技能提升
- 檢驗(yàn)鑒定合同書協(xié)議書指南
- 熱處理材料供應(yīng)協(xié)議
- 茶葉共享與互利購(gòu)銷合同
- GB/T 45008-2024稀土熱障涂層材料鋯酸釓鐿粉末
- 經(jīng)理與領(lǐng)導(dǎo)人員管理制度
- 全國(guó)第三屆職業(yè)技能大賽(數(shù)字孿生應(yīng)用技術(shù))選拔賽理論考試題庫(kù)(含答案)
- 應(yīng)用數(shù)理統(tǒng)計(jì)知到智慧樹章節(jié)測(cè)試課后答案2024年秋中國(guó)農(nóng)業(yè)大學(xué)
- 文藝復(fù)興史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 大國(guó)三農(nóng)II-農(nóng)業(yè)科技版智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- 綠化養(yǎng)護(hù)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2024年湛江市農(nóng)業(yè)發(fā)展集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評(píng)價(jià)導(dǎo)則
- MOOC 創(chuàng)新思維與創(chuàng)業(yè)實(shí)驗(yàn)-東南大學(xué) 中國(guó)大學(xué)慕課答案
- JBT 1472-2023 泵用機(jī)械密封 (正式版)
評(píng)論
0/150
提交評(píng)論