第19講 數(shù)據(jù)庫(kù)恢復(fù).ppt_第1頁(yè)
第19講 數(shù)據(jù)庫(kù)恢復(fù).ppt_第2頁(yè)
第19講 數(shù)據(jù)庫(kù)恢復(fù).ppt_第3頁(yè)
第19講 數(shù)據(jù)庫(kù)恢復(fù).ppt_第4頁(yè)
第19講 數(shù)據(jù)庫(kù)恢復(fù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù),事務(wù) 故障的種類(lèi) 恢復(fù)的實(shí)現(xiàn)技術(shù)、策略 具有檢查點(diǎn)的恢復(fù)技術(shù),設(shè)想網(wǎng)上購(gòu)物的一次交易,付款過(guò)程包括以下DB操作: 1)更新所購(gòu)商品的庫(kù)存信息; 2)與銀行系統(tǒng)交互,保存客戶付款信息; 3)生成訂單,一、事務(wù),事務(wù)(Transaction)是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。,定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 語(yǔ)句1 SQL 語(yǔ)句1 SQL 語(yǔ)句2 SQL 語(yǔ)句2 。 。 COMMIT ROLLBACK,事務(wù)的特性(ACID特性),原子性(Atomicity) 一致

2、性(Consistency) 隔離性(Isolation) 持續(xù)性(Durability ),1. 原子性,事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。,2. 一致性,定義事務(wù)時(shí),應(yīng)保證事務(wù)執(zhí)行的結(jié)果必使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài).,例:銀行轉(zhuǎn)帳,從帳號(hào)A中取出一萬(wàn)元,存入帳號(hào)B。,3. 隔離性,對(duì)并發(fā)執(zhí)行而言,一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。,T1的修改被T2覆蓋了!,4. 持續(xù)性,一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。,思考:破壞事務(wù)ACID特性的因素可能有哪些?,回顧,什么叫事務(wù)? 如何用SQL語(yǔ)句定義事務(wù)? 事務(wù)的特性? 在

3、哪些情況下事務(wù)的特性可能遭到破壞?,二、故障的種類(lèi),1.事務(wù)故障: 事務(wù)在運(yùn)行過(guò)程中被中斷,沒(méi)有達(dá)到預(yù)期的終點(diǎn)。 例如:運(yùn)算溢出,并發(fā)死鎖而被撤銷(xiāo)的事務(wù) 思考:事務(wù)故障帶來(lái)的問(wèn)題 2.系統(tǒng)故障: 造成系統(tǒng)停止運(yùn)轉(zhuǎn)的事件,影響所有正在運(yùn)行的事務(wù)。 例如:系統(tǒng)斷電,CPU故障,OS故障等 思考:系統(tǒng)故障帶來(lái)的問(wèn)題 3.介質(zhì)故障: 硬故障,指外存故障,如磁盤(pán)損壞、磁場(chǎng)干擾等。 4.計(jì)算機(jī)病毒,三、恢復(fù)的實(shí)現(xiàn)技術(shù),基本原理:冗余 當(dāng)數(shù)據(jù)庫(kù)被破壞或產(chǎn)生不正確的數(shù)據(jù)時(shí),用存儲(chǔ)在系統(tǒng)別處的冗余數(shù)據(jù)來(lái)重建。,如何建立冗余數(shù)據(jù)? 數(shù)據(jù)轉(zhuǎn)儲(chǔ) 登記日志文件,1 數(shù)據(jù)轉(zhuǎn)儲(chǔ),轉(zhuǎn)儲(chǔ)是指DBA定期地將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到另一個(gè)

4、磁盤(pán)上保存起來(lái)的過(guò)程;備用數(shù)據(jù)稱為副本。 當(dāng)數(shù)據(jù)庫(kù)被破壞,可將副本重新裝入。,轉(zhuǎn)儲(chǔ)的分類(lèi),靜態(tài)轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)過(guò)程中不允許運(yùn)行事務(wù)。 動(dòng)態(tài)轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)過(guò)程中允許運(yùn)行事務(wù)。 思考: 轉(zhuǎn)儲(chǔ)得到的副本上的數(shù)據(jù)是否正確有效?,海量轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)。 增量轉(zhuǎn)儲(chǔ):只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過(guò)的數(shù)據(jù)。 思考: 用哪種轉(zhuǎn)儲(chǔ)方式得到的副本進(jìn)行恢復(fù)更方便? 如果數(shù)據(jù)庫(kù)很大,使用哪種方式轉(zhuǎn)儲(chǔ)更有效?,利用靜態(tài)轉(zhuǎn)儲(chǔ)副本進(jìn)行恢復(fù),故障發(fā)生點(diǎn) 靜態(tài)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù) 正常運(yùn)行 Ta Tb Tf 重裝后備副本 恢復(fù) ,利用動(dòng)態(tài)轉(zhuǎn)儲(chǔ)副本進(jìn)行恢復(fù),Ta Tb Tf 動(dòng)態(tài)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù) 故障發(fā)生點(diǎn) 正常運(yùn)行 登記日志文件 登記新日志文件 轉(zhuǎn)儲(chǔ)

5、日志文件 重裝后備副本,然后利用轉(zhuǎn)儲(chǔ)的日志文件恢復(fù) 恢復(fù)到一 致性狀態(tài),轉(zhuǎn)儲(chǔ)方法小結(jié),2 日志文件,日志文件是用來(lái)記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件 日志文件的內(nèi)容,包括:事務(wù)開(kāi)始標(biāo)記、結(jié)束標(biāo)記、更新操作 每個(gè)日志記錄包括: 事務(wù)標(biāo)識(shí) 操作類(lèi)型 操作對(duì)象 更新前數(shù)據(jù)的舊值 更新后數(shù)據(jù)的新值 作用:事務(wù)故障和系統(tǒng)故障的恢復(fù); 協(xié)助后備副本恢復(fù)數(shù)據(jù)庫(kù)。 登記日志文件的原則:按時(shí)間次序登記;先寫(xiě)日志文件,后寫(xiě)數(shù)據(jù)庫(kù),三、恢復(fù)策略,1 事務(wù)故障的恢復(fù) 由恢復(fù)子系統(tǒng)利用日志文件撤消(UNDO)此事務(wù)已對(duì)數(shù)據(jù)庫(kù)進(jìn)行的修改。 事務(wù)故障的恢復(fù)由系統(tǒng)自動(dòng)完成,不需要用戶干預(yù)。 具體步驟:,1)反向掃描文件日志,查

6、找該事務(wù)的更新操作; 2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作。 3)繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理; 4)直至讀到此事務(wù)的開(kāi)始標(biāo)記,事務(wù)故障恢復(fù)完成。,2 系統(tǒng)故障的恢復(fù),系統(tǒng)故障造成數(shù)據(jù)庫(kù)不一致?tīng)顟B(tài)的原因 一些未完成事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新已寫(xiě)入數(shù)據(jù)庫(kù) 一些已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新還留在緩沖區(qū)沒(méi)來(lái)得及寫(xiě)入數(shù)據(jù)庫(kù) 恢復(fù)方法 1. Undo 故障發(fā)生時(shí)未完成的事務(wù) 2. Redo 已完成的事務(wù) 系統(tǒng)故障的恢復(fù)由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成,不需要用戶干預(yù),具體步驟,1) 正向掃描日志文件(即從頭掃描日志文件) Redo隊(duì)列: 在故障發(fā)生前已經(jīng)提交的事務(wù) Undo隊(duì)列:故障發(fā)生時(shí)尚未

7、完成的事務(wù) 2)對(duì)Undo隊(duì)列事務(wù)進(jìn)行UNDO處理 反向掃描日志文件,對(duì)每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作 3)對(duì)Redo隊(duì)列事務(wù)進(jìn)行REDO處理 正向掃描日志文件,對(duì)每個(gè)REDO事務(wù)重新執(zhí)行登記過(guò)的操作,3 介質(zhì)故障的恢復(fù),恢復(fù)步驟 1)裝入最新的數(shù)據(jù)庫(kù)副本,使數(shù)據(jù)庫(kù)恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。 對(duì)于靜態(tài)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫(kù)副本,裝入后數(shù)據(jù)庫(kù)即處于一致性狀態(tài) 對(duì)于動(dòng)態(tài)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫(kù)副本,還須同時(shí)裝入轉(zhuǎn)儲(chǔ)時(shí)刻的日志文件副本,利用恢復(fù)系統(tǒng)故障的方法(即REDO+UNDO),才能將數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)。 2) 裝入相應(yīng)的日志文件副本,重做已完成的事務(wù)。,1.事務(wù)的隔離性是由DBMS的( ) A.恢

8、復(fù)子系統(tǒng)出現(xiàn) B.完整性子系統(tǒng)實(shí)現(xiàn) C.安全性子系統(tǒng)實(shí)現(xiàn) D.并發(fā)控制子系統(tǒng)實(shí)現(xiàn) 2.在數(shù)據(jù)庫(kù)系統(tǒng)中死鎖屬于() A.系統(tǒng)故障B.程序故障C.事務(wù)故障D.介質(zhì)故障 3.若一個(gè)事務(wù)執(zhí)行成功,則它的全部更新被提交;若一個(gè)事務(wù)執(zhí)行失敗,則DB中被其更新過(guò)的數(shù)據(jù)恢復(fù)原狀,就象這些更新從未發(fā)生過(guò),這保持了數(shù)據(jù)庫(kù)處于() A.安全性狀態(tài) B.一致性狀態(tài) C.完整性狀態(tài) D.可靠性狀態(tài),練習(xí):,四、具有檢查點(diǎn)的恢復(fù)技術(shù),1 利用日志進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)時(shí)遇到的問(wèn)題: 搜索整個(gè)日志將耗費(fèi)大量的時(shí)間 REDO處理:重新執(zhí)行,浪費(fèi)大量時(shí)間,2 解決方案:具有檢查點(diǎn)的恢復(fù)技術(shù) 在日志文件中增加檢查點(diǎn)記錄(checkpoi

9、nt) 增加重新開(kāi)始文件,3 具有檢查點(diǎn)的日志文件和重新開(kāi)始文件:,周期性執(zhí)行如下操作: 1.將當(dāng)前日志緩沖區(qū)中的所有日志記錄寫(xiě)入磁盤(pán)的日志文件上; 2.在日志文件中寫(xiě)入一個(gè)檢查點(diǎn)記錄; 3. 將當(dāng)前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫(xiě)入磁盤(pán)的數(shù)據(jù)庫(kù)中; 4. 把檢查點(diǎn)記錄在日志文件中的地址寫(xiě)入重新開(kāi)始文件。,4 利用檢查點(diǎn)的恢復(fù)策略,當(dāng)事務(wù)T在一個(gè)檢查點(diǎn)之前提交,T對(duì)數(shù)據(jù)庫(kù)所做的修改一定已寫(xiě)入數(shù)據(jù)庫(kù) 在進(jìn)行恢復(fù)處理時(shí),沒(méi)有必要對(duì)事務(wù)T執(zhí)REDO操作,5 使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟,1)從重新開(kāi)始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄; 2)由該檢查

10、點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST 建立兩個(gè)事務(wù)隊(duì)列 UNDO-LIST REDO-LIST 把ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為空。,3)從檢查點(diǎn)開(kāi)始正向掃描日志文件,直到日志文件結(jié)束 如有新開(kāi)始的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列 如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列 4)對(duì)UNDO-LIST中的每個(gè)事務(wù)執(zhí)行UNDO操作, 對(duì)REDO-LIST中的每個(gè)事務(wù)執(zhí)行REDO操作,五、數(shù)據(jù)庫(kù)鏡像,許多DBMS提供數(shù)據(jù)庫(kù)鏡像功能用于數(shù)據(jù)庫(kù)恢復(fù)。,小結(jié),事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位

11、DBMS保證系統(tǒng)中一切事務(wù)的ACID特性 恢復(fù)的基本原理:利用存儲(chǔ)在后備副本、日志文件和數(shù)據(jù)庫(kù)鏡像中的冗余數(shù)據(jù)來(lái)重建數(shù)據(jù)庫(kù) 常用恢復(fù)技術(shù) 事務(wù)故障的恢復(fù):UNDO 系統(tǒng)故障的恢復(fù):UNDO + REDO 介質(zhì)故障的恢復(fù) 重裝備份并恢復(fù)到一致性狀態(tài) + REDO 提高恢復(fù)效率的技術(shù) 檢查點(diǎn)技術(shù) 可以提高系統(tǒng)故障的恢復(fù)效率 鏡像技術(shù) 鏡像技術(shù)可以改善介質(zhì)故障的恢復(fù)效率,練習(xí):,設(shè)有四個(gè)事務(wù):Tl,T2,T3,T4;在系統(tǒng)崩潰之前,系統(tǒng)在日志中記錄了 如下內(nèi)容: Start-Transaction,Tl;Read-Item,T1,A;Read-Item,T1,D; White-Item,T1,D,20;Commit,T1;Checkpoint; Start-Transaction,T2;Read-Item,T2,B;Write-ltem,T2,B,l2; Start-Transaction,T4;Read-Item,T4,B;Write-Item,T4,B,l5; Start-Transaction, T3;Read-Item,T3,A;Write-Item,T3,A,30; Read-Item,T4,A

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論