第六章數(shù)據(jù)庫恢復(fù)技術(shù)-4.1_第1頁
第六章數(shù)據(jù)庫恢復(fù)技術(shù)-4.1_第2頁
第六章數(shù)據(jù)庫恢復(fù)技術(shù)-4.1_第3頁
第六章數(shù)據(jù)庫恢復(fù)技術(shù)-4.1_第4頁
第六章數(shù)據(jù)庫恢復(fù)技術(shù)-4.1_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第六章數(shù)據(jù)庫恢復(fù)技術(shù)事務(wù)(Transaction)的基本概念數(shù)據(jù)庫恢復(fù)的基本概念、恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)策略具有檢測點(diǎn)的恢復(fù)技術(shù)1事務(wù)的基本概念事務(wù):是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位事務(wù)和程序事務(wù)的定義:顯示定義,隱含定義Commit和Rollback的含義事務(wù)的性質(zhì)(ACID特性)原子性(Atomicity):一致性(Consistency):例如銀行兩個(gè)賬戶A和B:A-200B+200隔離性(Isolation):持久性(Durability):事務(wù)是恢復(fù)和并發(fā)控制的基本單位由begintransaction開始,commit或rollback結(jié)束2故障的種類:數(shù)據(jù)庫恢復(fù):數(shù)據(jù)庫管理系統(tǒng)必須具有將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知狀態(tài)的功能事務(wù)內(nèi)部的故障:可預(yù)期的和不可預(yù)期的可預(yù)期的故障:例如銀行轉(zhuǎn)賬事務(wù),由事務(wù)本身處理,不需要恢復(fù)系統(tǒng)處理由事務(wù)本身處理恢復(fù)系統(tǒng)處理3故障種類begintransaction

讀賬戶甲的余額Balance;Balance=Balance-Amountif(Balance<0)then{

打印‘金額不足,不能轉(zhuǎn)賬’;rollback;}else{

讀賬戶乙余額Balance1;Balance1=Balance1+Amount;

寫回Balance1;commit;}事務(wù)本身可以發(fā)現(xiàn)并處理4故障種類不可預(yù)期的故障:運(yùn)算溢出,并發(fā)事務(wù)由于死鎖而強(qiáng)制撤銷事務(wù),違反了某些完整性限制等,事務(wù)沒有達(dá)到預(yù)期的終點(diǎn)(到達(dá)commit或rollback)可以預(yù)料的故障使事務(wù)能到達(dá)預(yù)期的終點(diǎn),而不可預(yù)料的故障使事務(wù)不能到達(dá)預(yù)期的終點(diǎn)事務(wù)具有原子性,對不能到達(dá)預(yù)期終點(diǎn)的事務(wù)要進(jìn)行處理--恢復(fù)undo操作:恢復(fù)程序強(qiáng)行取消該事務(wù)已經(jīng)做出的對數(shù)據(jù)庫的修改,使該事務(wù)好像根本沒有啟動過,強(qiáng)行回滾(rollback)該事務(wù)5故障種類:系統(tǒng)故障:指造成系統(tǒng)停止運(yùn)行的任何事件影響正在運(yùn)行的所有事務(wù),數(shù)據(jù)庫本身并沒遭到破壞,只是數(shù)據(jù)不正確--恢復(fù)數(shù)據(jù)緩沖區(qū)數(shù)據(jù)庫非正常終止的事務(wù):系統(tǒng)重新啟動后需undo正常終止的事務(wù)(持久性):系統(tǒng)重新啟動后需redo6故障種類:介質(zhì)故障:指外存故障數(shù)據(jù)庫(或部分)遭到破壞,影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)--恢復(fù)計(jì)算機(jī)病毒:感染系統(tǒng)和數(shù)據(jù)--恢復(fù)故障產(chǎn)生的影響:破壞數(shù)據(jù)庫,僅使數(shù)據(jù)庫中的數(shù)據(jù)不一致恢復(fù)基本原理:數(shù)據(jù)冗余7恢復(fù)的實(shí)現(xiàn)技術(shù):涉及的冗余數(shù)據(jù):數(shù)據(jù)轉(zhuǎn)儲和登記日志文件數(shù)據(jù)轉(zhuǎn)儲:DBA定期的將整個(gè)數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程轉(zhuǎn)儲十分耗費(fèi)時(shí)間和資源,DBA應(yīng)根據(jù)數(shù)據(jù)庫的使用情況確定一個(gè)適當(dāng)?shù)霓D(zhuǎn)儲周期靜態(tài)轉(zhuǎn)儲:在系統(tǒng)無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲操作,操作過程中禁止操作數(shù)據(jù)庫后援副本和數(shù)據(jù)庫中的數(shù)據(jù)是一致的,靜態(tài)轉(zhuǎn)儲降低數(shù)據(jù)庫的可用性動態(tài)轉(zhuǎn)儲:指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進(jìn)行存取和修改8恢復(fù)的實(shí)現(xiàn)技術(shù):轉(zhuǎn)儲得到的后援副本和數(shù)據(jù)庫中的數(shù)據(jù)不一定一致,但可以提高系統(tǒng)的可用性A=20后援副本數(shù)據(jù)庫在t1時(shí)刻A=20被寫到后援副本在t2時(shí)刻A被修改為100,A=100被寫到后數(shù)據(jù)庫,而后援副本的值不變A=100后援副本數(shù)據(jù)庫A=20必須記錄轉(zhuǎn)儲期間,各事務(wù)對數(shù)據(jù)庫的修改活動9恢復(fù)的實(shí)現(xiàn)技術(shù):海量轉(zhuǎn)儲增量轉(zhuǎn)儲數(shù)據(jù)的轉(zhuǎn)儲方法:10恢復(fù)的實(shí)現(xiàn)技術(shù):登記日志文件日志文件的內(nèi)容和格式日志文件:記錄事務(wù)對數(shù)據(jù)庫更新操作的文件類型:

以記錄為單位的日志文件和以數(shù)據(jù)塊為單位的日志文件日志文件的內(nèi)容:記錄各個(gè)事務(wù)的開始,結(jié)束和所有的更新操作日志記錄的內(nèi)容主要包括:1

事務(wù)標(biāo)識4更新前數(shù)據(jù)的舊值2

操作的類型5更新后的新值3

操作對象11恢復(fù)的實(shí)現(xiàn)技術(shù):例如:日志文件的一部分1begin1updateA1052begin2insertC82commit日志文件的作用:恢復(fù)數(shù)據(jù)的依據(jù)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù):必須建立日志文件

1確定哪些事務(wù)結(jié)束,哪些沒結(jié)束(正向掃描日志文件)2對未結(jié)束的事務(wù)采取undo操作(反向掃描日志文件)3對已結(jié)束的事務(wù)采取redo操作(正向掃描日志文件)日志恢復(fù)12恢復(fù)的實(shí)現(xiàn)技術(shù):在靜態(tài)轉(zhuǎn)出方式中:也可以建立日志,恢復(fù)過程為

1裝入后援副本

2用日志恢復(fù)靜態(tài)轉(zhuǎn)儲無日志恢復(fù)示意圖:t1t2t3正常運(yùn)行:靜態(tài)轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)tatbtc介質(zhì)故障恢復(fù)重裝后援副本恢復(fù):重新運(yùn)行事務(wù)程序故障發(fā)生點(diǎn)數(shù)據(jù)庫狀態(tài)繼續(xù)運(yùn)行數(shù)據(jù)示意恢復(fù)后數(shù)據(jù)示意13恢復(fù)的實(shí)現(xiàn)技術(shù):靜態(tài)轉(zhuǎn)儲有日志恢復(fù)示意圖:t1t2t3正常運(yùn)行:靜態(tài)轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)登記日志文件tatbtc介質(zhì)故障恢復(fù)重裝后援副本按日志恢復(fù)故障發(fā)生點(diǎn)數(shù)據(jù)庫狀態(tài)繼續(xù)運(yùn)行登記日志文件日志文件數(shù)據(jù)示意恢復(fù)后數(shù)據(jù)示意故障發(fā)生點(diǎn)前數(shù)據(jù)庫一致狀態(tài)14在動態(tài)轉(zhuǎn)出方式中:必須建立日志,恢復(fù)過程為

1裝入后援副本

2用日志恢復(fù)t1t2t3正常運(yùn)行:動態(tài)轉(zhuǎn)儲運(yùn)行事務(wù)故障發(fā)生點(diǎn)登記日志文件tatbtc介質(zhì)故障恢復(fù)重裝后援副本按日志恢復(fù)故障發(fā)生點(diǎn)前數(shù)據(jù)庫一致狀態(tài)日志文件繼續(xù)運(yùn)行登記日志文件數(shù)據(jù)庫中數(shù)據(jù)示意故障發(fā)生點(diǎn)數(shù)據(jù)庫狀態(tài)恢復(fù)后數(shù)據(jù)庫中數(shù)據(jù)示意15恢復(fù)的實(shí)現(xiàn)技術(shù):登記日志文件登記的次序嚴(yán)格按事務(wù)實(shí)際執(zhí)行的順序必須先寫日志文件,后寫數(shù)據(jù)庫日志文件數(shù)據(jù)庫A=30修改的數(shù)據(jù)關(guān)于此修改的日志記錄數(shù)據(jù)修改1begin1updateA103016恢復(fù)策略:事務(wù)故障恢復(fù):事務(wù)未結(jié)束,由系統(tǒng)自動恢復(fù),采用undo操作,系統(tǒng)恢復(fù)步驟:反向掃描日志文件,查找該事務(wù)的更新操作對該事務(wù)的更新操作執(zhí)行逆操作繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣的處理直至讀到該事務(wù)的開始標(biāo)志,該事務(wù)恢復(fù)完成

系統(tǒng)故障恢復(fù):系統(tǒng)重新啟動時(shí),由系統(tǒng)自動恢復(fù),對未結(jié)束的事務(wù)采用undo操作,對已結(jié)束的事務(wù)采用redo操作,系統(tǒng)恢復(fù)步驟:17恢復(fù)策略:正向掃描日志文件,找出在故障發(fā)生前已提交的事務(wù),將其事務(wù)標(biāo)識記入重做(redo)隊(duì)列,找出未提交的事務(wù),將其事務(wù)標(biāo)識記入撤銷(undo)隊(duì)列對撤銷隊(duì)列中的事務(wù)進(jìn)行撤銷(undo)處理對重做隊(duì)列中的事務(wù)進(jìn)行重做(redo)處理

介質(zhì)故障恢復(fù):需要DBA介入,實(shí)際恢復(fù)由系統(tǒng)完成,具體步驟:裝入后援副本裝入相應(yīng)的日志文件副本啟動恢復(fù)程序(按日志恢復(fù))!日志文件也要轉(zhuǎn)儲!日志和數(shù)據(jù)庫不再同一磁盤18具有檢測點(diǎn)的恢復(fù):在系統(tǒng)故障和介質(zhì)故障中,要掃描日志文件,確定哪些事務(wù)已提交,哪些事務(wù)未提交,如果日志文件很長,存在兩個(gè)問題掃描日志花費(fèi)時(shí)間長許多需要redo的事務(wù)所涉及的數(shù)據(jù)已寫到數(shù)據(jù)庫中,不在緩沖區(qū)中具有檢測點(diǎn)的恢復(fù)技術(shù):在日志文件中增加檢測點(diǎn)記錄,增加一個(gè)重新開始文件,動態(tài)維護(hù)日志文件檢測點(diǎn)記錄的內(nèi)容:建立檢測點(diǎn)時(shí)刻所有正在執(zhí)行的事務(wù)清單這些事務(wù)最近一個(gè)日志記錄的地址19具有檢測點(diǎn)的恢復(fù):動態(tài)維護(hù)日志文件:建立檢測點(diǎn),保存數(shù)據(jù)庫狀態(tài),步驟為將當(dāng)前日志緩沖中的日志記錄寫入日志文件在日志文件中寫入一個(gè)檢測點(diǎn)記錄將當(dāng)前數(shù)據(jù)緩沖中的所有數(shù)據(jù)寫入數(shù)據(jù)庫將檢測點(diǎn)記錄的地址寫入重新開始文件T1D1T2D2Ci檢測點(diǎn)記錄地址檢測點(diǎn)Ci的重新開始記錄重新開始文件日志文件20具有檢測點(diǎn)的恢復(fù):使用檢測點(diǎn)進(jìn)行恢復(fù)使用檢測點(diǎn)進(jìn)行恢復(fù)的步驟:在重新開始文件中找到最后一個(gè)記錄,從而找到最后一個(gè)檢測點(diǎn)記錄找到正在執(zhí)行的事務(wù)清單,將其放入undo隊(duì)列Tc(檢測點(diǎn))

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論