版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第10章
數(shù)據(jù)庫恢復(fù)技術(shù)
2
要點(1)事務(wù)(2)故障及其類型(3)數(shù)據(jù)庫恢復(fù)實現(xiàn)技術(shù)(4)數(shù)據(jù)庫恢復(fù)策略310.1事務(wù)的基本概念10.1.1事務(wù)(Transaction)1.事務(wù)【定義】用戶定義的一個對數(shù)據(jù)庫讀寫操作序列,是一個不可分割的工作單位。(1)在關(guān)系數(shù)據(jù)庫中,事務(wù)可以是一條、一組SQL語句,或整個程序。(2)數(shù)據(jù)庫系統(tǒng)中通常有多個事務(wù)并行運行。(3)數(shù)據(jù)庫恢復(fù)和并發(fā)控制的基本單位。2.事務(wù)和程序的區(qū)別程序可以包含多個事務(wù)。43.SQL語言中事務(wù)的定義語句事務(wù)的開始和結(jié)束可以由用戶顯式控制。如果用戶沒有定義,則由DBMS按缺省規(guī)定自動劃分事務(wù)。SQL定義事務(wù)的語句:Begintransaction(事務(wù)開始)…Commit(事務(wù)提交,正常結(jié)束,將更新結(jié)果寫入磁盤)/Rollback(事務(wù)回滾,撤銷事務(wù)中所有已完成的更新)5BEGINTRANSACTION
讀賬戶甲的余額balance;balance=balance–amount;//amount為轉(zhuǎn)賬金額
if(balance<0)then{打印‘金額不足,不能轉(zhuǎn)賬’;
ROLLBACK;//撤銷剛才的修改,恢復(fù)事務(wù)
}else{讀賬戶乙的金額balance1;balance1=balance1+amount;
寫回balance1;
COMMIT;}事務(wù)示例610.1.2事務(wù)的性質(zhì)(ACID特性)1.原子性(Atomicity)事務(wù)中的操作要么都做,要么都不做(AllorNone)。2.一致性(Consistency)事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。
與原子性密切相關(guān)7事務(wù)的性質(zhì)(ACID特性)3.隔離性(Isolation)并發(fā)執(zhí)行的各事務(wù)不能相互干擾4.持續(xù)性/永久性(Durability)事務(wù)一旦提交,它對數(shù)據(jù)庫的更新不再受后繼操作或故障的影響
DBMS中事務(wù)處理必須保證其ACID特性,這樣才能保證數(shù)據(jù)庫中數(shù)據(jù)的安全和正確。8事務(wù)型DBMS中必備的機制(1)事務(wù)是恢復(fù)和并發(fā)控制的基本單位(2)恢復(fù)機制與并發(fā)控制機制的提出事務(wù)在運行過程中因某種故障被強行終止,數(shù)據(jù)庫一致性被破壞,需進行恢復(fù)。多個事務(wù)并行運行時,不同事務(wù)的各種操作交叉進行,為保證各事務(wù)的執(zhí)行互不干擾,需進行并發(fā)控制。910.2數(shù)據(jù)庫恢復(fù)概述數(shù)據(jù)庫由于某些故障發(fā)生可能會導(dǎo)致數(shù)據(jù)庫被破壞或影響數(shù)據(jù)庫中數(shù)據(jù)的一致性(或完整性、正確性)。當(dāng)系統(tǒng)運行過程中發(fā)生故障時,數(shù)據(jù)庫恢復(fù)技術(shù)將數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某個一致狀態(tài),它是數(shù)據(jù)庫可靠性的保證。數(shù)據(jù)庫恢復(fù)機制是衡量某DBMS系統(tǒng)性能的指標(biāo)之一,對系統(tǒng)可靠性起決定作用,對運行效率有很大影響。1010.3故障的種類及其影響10.3.1故障的種類1.事務(wù)內(nèi)部故障事務(wù)在運行至正常終止點(commit或rollback)前被終止。包括(預(yù)期的、非預(yù)期的)能由事務(wù)所在程序處理的,如條件不滿足等。不能由事務(wù)所在程序處理的,如運算溢出等。這類恢復(fù)操作稱為事務(wù)撤消。預(yù)期故障非預(yù)期故障11故障的種類2.系統(tǒng)故障(system)
系統(tǒng)重啟、OS故障、DBMS代碼錯誤、掉電等。發(fā)生系統(tǒng)故障時:(1)一些尚未完成的事務(wù)的結(jié)果可能已經(jīng)寫入數(shù)據(jù)庫。(UNDO)(2)有些已完成的事務(wù)的結(jié)果甚至駐留在緩沖區(qū)中。(REDO)12故障的種類3.介質(zhì)故障(medium)介質(zhì)故障也稱為硬故障。如:磁盤損壞等。這類事故破壞數(shù)據(jù)庫或部分數(shù)據(jù)庫。4.計算機病毒(virus)這類事故破壞數(shù)據(jù)庫或部分數(shù)據(jù)庫。1310.3.2故障對數(shù)據(jù)庫的可能影響(1)數(shù)據(jù)庫本身被破壞,使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失。如:介質(zhì)故障、計算機病毒等。(2)數(shù)據(jù)庫沒有被破壞,但因事務(wù)的運行被非正常終止而使數(shù)據(jù)庫數(shù)據(jù)失去一致性(正確性)。如:事務(wù)內(nèi)部故障、系統(tǒng)故障、計算機病毒等。1410.4恢復(fù)的實現(xiàn)技術(shù)(1)數(shù)據(jù)庫恢復(fù)的基本原理利用存儲在系統(tǒng)別處的冗余數(shù)據(jù)來重建。(2)恢復(fù)技術(shù)的兩個關(guān)鍵①如何建立冗余數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)儲登錄日志文件②如何利用冗余數(shù)據(jù)恢復(fù)數(shù)據(jù)庫1510.4.1建立冗余數(shù)據(jù)的方法一:數(shù)據(jù)轉(zhuǎn)儲轉(zhuǎn)儲狀態(tài)動態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲轉(zhuǎn)儲方式海量轉(zhuǎn)儲動態(tài)海量轉(zhuǎn)儲靜態(tài)海量轉(zhuǎn)儲增量轉(zhuǎn)儲動態(tài)增量轉(zhuǎn)儲靜態(tài)增量轉(zhuǎn)儲每次轉(zhuǎn)儲全部數(shù)據(jù)庫每次轉(zhuǎn)儲更新過的數(shù)據(jù)轉(zhuǎn)儲和用戶事務(wù)可以并發(fā)執(zhí)行轉(zhuǎn)儲期間不執(zhí)行任何用戶事務(wù)數(shù)據(jù)轉(zhuǎn)儲:定期進行磁盤備份形成后備副本由DBA定義適當(dāng)?shù)霓D(zhuǎn)儲周期。16數(shù)據(jù)轉(zhuǎn)儲和恢復(fù)正常運行:靜態(tài)轉(zhuǎn)儲運行事務(wù)故障發(fā)生點登記日志文件TaTbTf恢復(fù):重裝后備副本轉(zhuǎn)儲耗費時間、資源,應(yīng)定期進行重新運行事務(wù)轉(zhuǎn)儲和恢復(fù)1710.4.2建立冗余數(shù)據(jù)的方法二——登記日志文件1.登記日志文件(Logging)日志文件:記錄事務(wù)對數(shù)據(jù)庫的更新操作。(1)以記錄為單位的日志文件事務(wù)的開始標(biāo)記,事務(wù)的結(jié)束標(biāo)記各個事務(wù)的所有更新操作日志記錄的內(nèi)容:事務(wù)標(biāo)識TransID,操作類型UpdateType,操作對象RecordID,更新前的舊值OldValue,更新后的新值NewValue(2)以數(shù)據(jù)塊為單位的日志文件事務(wù)標(biāo)識,被更新的數(shù)據(jù)塊18(3)登記日志文件必須遵循的原則①登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時間次序。②必須先寫日志文件,后寫數(shù)據(jù)庫。(WriteAfterLogging)192.恢復(fù)的實現(xiàn)
通常在一個數(shù)據(jù)庫中綜合使用數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件這兩種方法,配合使用后備副本和日志文件進行數(shù)據(jù)庫恢復(fù)。利用日志文件進行數(shù)據(jù)庫恢復(fù)(1)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)須用日志文件(2)通常綜合數(shù)據(jù)庫后備副本和日志文件將數(shù)據(jù)庫恢復(fù)至某個一致狀態(tài)(視轉(zhuǎn)儲方法而定)(3)恢復(fù)時,對故障發(fā)生時已提交的事務(wù)進行重做(Redo,再執(zhí)行),而對未提交的事務(wù)進行撤銷(Undo,逆操作)2110.5恢復(fù)策略10.5.1事務(wù)故障的恢復(fù)(1)反向掃描日志文件,查找事務(wù)的更新操作。(2)對該事務(wù)中的更新操作執(zhí)行逆向操作。說明:由系統(tǒng)自動完成。10.5.2系統(tǒng)故障的恢復(fù)(1)正向掃描日志文件,生成Redo(已提交的事務(wù))和Undo隊列(尚未完成的事務(wù))。(2)對Undo隊列中的各事務(wù)進行Undo。(3)對Redo隊列中的各事務(wù)進行Redo。說明:由系統(tǒng)在重啟時自動完成。2210.5.3介質(zhì)故障的恢復(fù)(1)裝入最新后備副本和有關(guān)日志文件副本使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。(2)正向掃描日志文件,生成Redo(已提交的事務(wù))和Undo隊列(尚未完成的事務(wù))。(3)對Undo隊列中的各事務(wù)進行Undo。(4)對Redo隊列中的各事務(wù)進行Redo。說明:裝入副本由DBA介入完成,并執(zhí)行DBMS提供的恢復(fù)命令。2310.6具有檢查點的恢復(fù)技術(shù)1.引入檢查點的原因(CheckPoint)減少對日志記錄的搜索和Redo處理,改善恢復(fù)效率。即數(shù)據(jù)更新已寫庫,不需REDO處理。2.具有檢查點的恢復(fù)技術(shù)(1)在日志文件中增加檢查點記錄,其內(nèi)容包括:建立檢查點時刻所有正在執(zhí)行的事務(wù)清單。這些事務(wù)最近一個日志記錄的地址。24具有檢查點的恢復(fù)技術(shù)(2)增加重新開始文件 用來記錄各個檢查點記錄在日志文件中的地址動態(tài)維護日志文件的方法:周期性地執(zhí)行(定期或不定期)如下操作:建立檢查點,保存數(shù)據(jù)庫狀態(tài)。253.建立檢查點的步驟(1)將當(dāng)前日志緩沖中的所有日志記錄寫入磁盤的日志文件;(2)在日志文件中寫入一個檢查點記錄;(3)將當(dāng)前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中;(4)把檢查點記錄在日志文件中的地址寫入一個重新開始文件。264.使用檢查點恢復(fù)技術(shù)進行恢復(fù)的步驟(1)從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點記錄;(2)由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務(wù)清單;(3)從檢查點開始正向掃描日志文件;(4)有新開始的事務(wù)Ti,把Ti暫時放入Undo隊列;(5)如有提交的事務(wù)Tj,把Tj移入Redo隊列;(6)對Undo隊列中的各事務(wù)進行Undo,再對Redo隊列中的各事務(wù)進行Redo。27實例:恢復(fù)子系統(tǒng)采取的不同策略T1T2T3T5T4時間系統(tǒng)故障檢查點不要REDOREDO撤銷REDO撤銷2810.7數(shù)據(jù)庫鏡像(Mirror)
1.概念數(shù)據(jù)庫鏡像為避免介質(zhì)故障造成的損失而提出的,由DBA提出要求或當(dāng)主數(shù)據(jù)庫更新時,DBMS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年汽車內(nèi)飾件定制加工合同范本3篇
- 2024年度綠色節(jié)能暖通系統(tǒng)承包工程合作協(xié)議模板3篇
- 2024外貿(mào)企業(yè)信用保險及風(fēng)險保障合作協(xié)議二零二四3篇
- 睡眠追蹤對高血壓的影響-洞察分析
- 藥店O2O模式研究-洞察分析
- 移動端可用性分析-洞察分析
- 2024醫(yī)療器械市場推廣與銷售代理合同3篇
- 息肉患者飲食指導(dǎo)-洞察分析
- 2024年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)委托運營合同3篇
- 2024年度互聯(lián)網(wǎng)+產(chǎn)業(yè)股權(quán)補償轉(zhuǎn)讓合同3篇
- 極狐旗艦店年度活動營銷規(guī)劃
- 2023年環(huán)境保護部南京環(huán)境科學(xué)研究所招聘筆試參考題庫附帶答案詳解
- 繪本故事62蚯蚓的日記
- 超星爾雅學(xué)習(xí)通《西廂記》賞析(首都師范大學(xué))網(wǎng)課章節(jié)測試答案
- 新概念英語第三冊課文(全60課)
- 浙江省某住宅樓質(zhì)量通病防治措施
- YY/T 0506.1-2023醫(yī)用手術(shù)單、手術(shù)衣和潔凈服第1部分:通用要求
- TCIIA 020-2022 科學(xué)數(shù)據(jù) 安全傳輸技術(shù)要求
- GB 7101-2022食品安全國家標(biāo)準(zhǔn)飲料
- 經(jīng)濟思想史 全套講義
- 華能萊蕪電廠1000MW汽輪機圖片
評論
0/150
提交評論