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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、DBMS保證系統(tǒng)中一切事務的ACID特性 恢復的基本原理:利用存儲在后備副本、日志文件和數(shù)據(jù)庫鏡像中的冗余數(shù)據(jù)來重建數(shù)據(jù)庫 常用恢復技術 事務故障的恢復:UNDO 系統(tǒng)故障的恢復:UNDO + REDO 介質故障的恢復 重裝備份并恢復到一致性狀態(tài) + REDO 提高恢復效率的技術 檢查點技術 可以提高系統(tǒng)故障的恢復效率 鏡像技術 鏡像技術可以改善介質故障的恢復效率,練習:,設有四個事務: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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論