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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫原理與應(yīng)用第十章第十章 數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)庫恢復(fù)技術(shù)10.1 事務(wù)的基本概念事務(wù)的基本概念10.2 數(shù)據(jù)庫恢復(fù)概述數(shù)據(jù)庫恢復(fù)概述10.3 故障的種類故障的種類10.4 恢復(fù)的實現(xiàn)技術(shù)恢復(fù)的實現(xiàn)技術(shù)10.5 恢復(fù)策略恢復(fù)策略10.6 具有檢查點的恢復(fù)技術(shù)具有檢查點的恢復(fù)技術(shù)10.7 數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像10.8 小結(jié)小結(jié)一、什么是事務(wù)一、什么是事務(wù)二、如何定義事務(wù)二、如何定義事務(wù)三、事務(wù)的特性三、事務(wù)的特性v事務(wù)事務(wù)(Transaction)(Transaction)是用戶定義的一個數(shù)據(jù)庫是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作操作序列,這些操作要么全做,要么全不做要么全做

2、,要么全不做,是一個不可分割的工作單位是一個不可分割的工作單位v事務(wù)事務(wù)和和程序程序是兩個概念是兩個概念 在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條SQLSQL語句,語句,一組一組SQLSQL語句或整個程序語句或整個程序 一個應(yīng)用程序通常包含多個事務(wù)一個應(yīng)用程序通常包含多個事務(wù)v事務(wù)是恢復(fù)和并發(fā)控制的事務(wù)是恢復(fù)和并發(fā)控制的基本單位基本單位v顯式定義方式顯式定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 語句語句1 SQL 語句語句1 SQL 語句語句2 SQL 語句語句2 。 。 COMMIT ROLLBACKv隱式方式隱式方

3、式當(dāng)用戶沒有顯式地定義事務(wù)時,當(dāng)用戶沒有顯式地定義事務(wù)時,DBMS按缺省規(guī)定自動劃分事務(wù)按缺省規(guī)定自動劃分事務(wù)COMMIT事務(wù)正常結(jié)束事務(wù)正常結(jié)束 提交提交事務(wù)的所有操作(事務(wù)的所有操作(讀讀+更新更新)事務(wù)中所有對數(shù)據(jù)庫的更新事務(wù)中所有對數(shù)據(jù)庫的更新永久永久生效生效ROLLBACK事務(wù)異常終止事務(wù)異常終止 事務(wù)運(yùn)行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行事務(wù)運(yùn)行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務(wù)的所有回滾事務(wù)的所有更新更新操作操作 事務(wù)滾回到事務(wù)滾回到開始開始時的狀態(tài)時的狀態(tài)事務(wù)的事務(wù)的ACID特性特性:v 原子性(原子性(Atomicity)v 一致性(一致性(Consistency)v 隔

4、離性(隔離性(Isolation)v 持續(xù)性(持續(xù)性(Durability )v事務(wù)是數(shù)據(jù)庫的邏輯工作單位事務(wù)是數(shù)據(jù)庫的邏輯工作單位 事務(wù)中包括的諸操作要么都做,要么都不做事務(wù)中包括的諸操作要么都做,要么都不做事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)一個一致性狀態(tài)一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果不一致狀態(tài)不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務(wù)的結(jié)果數(shù)據(jù)庫中包含失敗事務(wù)的結(jié)果銀行轉(zhuǎn)帳:從帳號銀行轉(zhuǎn)帳:從帳號A中取出一萬元,存入帳號中取出一萬元,存入帳號B。 定義一個事務(wù),該事

5、務(wù)包括兩個操作定義一個事務(wù),該事務(wù)包括兩個操作 這兩個操作要么全做,要么全不做這兩個操作要么全做,要么全不做 全做或者全不做,數(shù)據(jù)庫都處于全做或者全不做,數(shù)據(jù)庫都處于一致性一致性狀態(tài)。狀態(tài)。 如果只做一個操作,數(shù)據(jù)庫就處于如果只做一個操作,數(shù)據(jù)庫就處于不一致性不一致性狀狀態(tài)態(tài)。 B=B+1 A=A-1 B A對并發(fā)執(zhí)行而言對并發(fā)執(zhí)行而言一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾 一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)對其他并發(fā)事務(wù)是隔離的是隔離的 并發(fā)執(zhí)行的各個并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾事務(wù)之間不能互相干擾 讀讀A=16 AA-

6、3寫回寫回A=13 讀讀A=16 AA-1 寫回寫回A=15 T2T1v持續(xù)性也稱永久性(持續(xù)性也稱永久性(Permanence) 一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。是永久性的。 接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。影響。v保證事務(wù)保證事務(wù)ACID特性是事務(wù)處理的任務(wù)特性是事務(wù)處理的任務(wù)v破壞事務(wù)破壞事務(wù)ACID特性的因素特性的因素 多個事務(wù)并行運(yùn)行時,不同事務(wù)的操作交多個事務(wù)并行運(yùn)行時,不同事務(wù)的操作交叉執(zhí)行叉執(zhí)行 事務(wù)在運(yùn)行過程中被強(qiáng)行停止事務(wù)在運(yùn)行過程中被強(qiáng)

7、行停止v故障是不可避免的故障是不可避免的 計算機(jī)硬件故障計算機(jī)硬件故障 系統(tǒng)軟件和應(yīng)用軟件的錯誤系統(tǒng)軟件和應(yīng)用軟件的錯誤 操作員的失誤操作員的失誤 惡意的破壞惡意的破壞v故障的影響故障的影響 運(yùn)行事務(wù)非正常中斷運(yùn)行事務(wù)非正常中斷 破壞數(shù)據(jù)庫破壞數(shù)據(jù)庫恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)v什么是事務(wù)故障什么是事務(wù)故障 某個事務(wù)在運(yùn)行過程中由于種種原因未運(yùn)行至正常終某個事務(wù)在運(yùn)行過程中由于種種原因未運(yùn)行至正常終止點就夭折了止點就夭折了v事務(wù)故障的常見原因事務(wù)故障的常見原因 輸入數(shù)據(jù)有誤輸入數(shù)據(jù)有誤 運(yùn)算溢出運(yùn)算溢出 違反了某些完整性限制違反了某些完整性限制 某些應(yīng)用程序

8、出錯某些應(yīng)用程序出錯 并行事務(wù)發(fā)生死鎖并行事務(wù)發(fā)生死鎖 。v發(fā)生事務(wù)故障時,夭折的事務(wù)可能已把對數(shù)據(jù)發(fā)生事務(wù)故障時,夭折的事務(wù)可能已把對數(shù)據(jù)庫的部分修改寫回磁盤庫的部分修改寫回磁盤v事務(wù)故障的恢復(fù):事務(wù)故障的恢復(fù):撤消事務(wù)(撤消事務(wù)(UNDO) 強(qiáng)行回滾(強(qiáng)行回滾(ROLLBACK)該事務(wù))該事務(wù) 清除該事務(wù)對數(shù)據(jù)庫的所有修改,使得這個事務(wù)象清除該事務(wù)對數(shù)據(jù)庫的所有修改,使得這個事務(wù)象根本沒有啟動過一樣根本沒有啟動過一樣v什么是系統(tǒng)故障什么是系統(tǒng)故障 整個系統(tǒng)的正常運(yùn)行突然被破壞整個系統(tǒng)的正常運(yùn)行突然被破壞 所有正在運(yùn)行的事務(wù)都非正常終止所有正在運(yùn)行的事務(wù)都非正常終止 內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息

9、全部丟失內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失 外部存儲設(shè)備上的數(shù)據(jù)未受影響外部存儲設(shè)備上的數(shù)據(jù)未受影響v 操作系統(tǒng)或操作系統(tǒng)或DBMS代碼錯誤代碼錯誤v 操作員操作失誤操作員操作失誤v 特定類型的硬件錯誤(如特定類型的硬件錯誤(如CPU故障)故障)v 突然停電突然停電v 清除清除尚未完成尚未完成的事務(wù)對數(shù)據(jù)庫的所有修改的事務(wù)對數(shù)據(jù)庫的所有修改 系統(tǒng)系統(tǒng)重新啟動時重新啟動時,恢復(fù)程序要強(qiáng)行撤消,恢復(fù)程序要強(qiáng)行撤消(UNDO)所有未完成事務(wù))所有未完成事務(wù)v將緩沖區(qū)中將緩沖區(qū)中已完成已完成事務(wù)提交的結(jié)果寫入數(shù)據(jù)庫事務(wù)提交的結(jié)果寫入數(shù)據(jù)庫 系統(tǒng)系統(tǒng)重新啟動時重新啟動時,恢復(fù)程序需要重做,恢復(fù)程序需要重做

10、(REDO)所有已提交的事務(wù))所有已提交的事務(wù)v 硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失v 介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多v 硬件故障硬件故障磁盤損壞、磁頭碰撞、操作系統(tǒng)的某種潛在磁盤損壞、磁頭碰撞、操作系統(tǒng)的某種潛在錯誤、瞬時強(qiáng)磁場干擾錯誤、瞬時強(qiáng)磁場干擾v 裝入裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)副本副本v 重做自此時始的所有重做自此時始的所有成功事務(wù)成功事務(wù),將這些事務(wù)已提交的結(jié)果,將這些事務(wù)已提交的結(jié)果重新記入數(shù)據(jù)庫重新記入數(shù)據(jù)

11、庫v恢復(fù)操作的基本原理:恢復(fù)操作的基本原理:冗余冗余 利用利用存儲在系統(tǒng)其它地方的存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)冗余數(shù)據(jù)來來重建重建數(shù)據(jù)庫中數(shù)據(jù)庫中已被破壞或不正確的那部分?jǐn)?shù)據(jù)已被破壞或不正確的那部分?jǐn)?shù)據(jù)v恢復(fù)的實現(xiàn)技術(shù):復(fù)雜恢復(fù)的實現(xiàn)技術(shù):復(fù)雜 一個大型數(shù)據(jù)庫產(chǎn)品,恢復(fù)子系統(tǒng)的代碼要占全部代一個大型數(shù)據(jù)庫產(chǎn)品,恢復(fù)子系統(tǒng)的代碼要占全部代碼的碼的10%以上以上恢復(fù)機(jī)制涉及的關(guān)鍵問題恢復(fù)機(jī)制涉及的關(guān)鍵問題1. 如何建立冗余數(shù)據(jù)如何建立冗余數(shù)據(jù) 數(shù)據(jù)轉(zhuǎn)儲(數(shù)據(jù)轉(zhuǎn)儲(backup) 登錄日志文件登錄日志文件(logging)2. 如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復(fù)如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復(fù)一、

12、什么是轉(zhuǎn)儲一、什么是轉(zhuǎn)儲二、轉(zhuǎn)儲的用途二、轉(zhuǎn)儲的用途三、轉(zhuǎn)儲方法三、轉(zhuǎn)儲方法v 轉(zhuǎn)儲是指轉(zhuǎn)儲是指DBA將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。存起來的過程。v 這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。1靜態(tài)轉(zhuǎn)儲與動態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲與動態(tài)轉(zhuǎn)儲2海量轉(zhuǎn)儲與增量轉(zhuǎn)儲海量轉(zhuǎn)儲與增量轉(zhuǎn)儲v轉(zhuǎn)儲方法分類轉(zhuǎn)儲方法分類 轉(zhuǎn)儲狀態(tài)轉(zhuǎn)儲狀態(tài)動態(tài)轉(zhuǎn)儲動態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲轉(zhuǎn)儲轉(zhuǎn)儲方式方式海量轉(zhuǎn)儲海量轉(zhuǎn)儲動態(tài)海量轉(zhuǎn)儲動態(tài)海量轉(zhuǎn)儲靜態(tài)海量轉(zhuǎn)儲靜態(tài)海量轉(zhuǎn)儲增量轉(zhuǎn)儲增量轉(zhuǎn)儲動態(tài)增量轉(zhuǎn)儲動態(tài)增量轉(zhuǎn)儲靜態(tài)增量轉(zhuǎn)儲靜態(tài)增量轉(zhuǎn)儲一、日志文

13、件的內(nèi)容一、日志文件的內(nèi)容二、二、日志文件的用途日志文件的用途三、登記日志文件的原則三、登記日志文件的原則1. 什么是日志文件什么是日志文件日志文件日志文件(log)是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件2. 日志文件的格式日志文件的格式以記錄為單位的日志文件以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件以數(shù)據(jù)塊為單位的日志文件3. 日志文件內(nèi)容日志文件內(nèi)容 各個事務(wù)的開始標(biāo)記各個事務(wù)的開始標(biāo)記(BEGIN TRANSACTION) 各個事務(wù)的結(jié)束標(biāo)記各個事務(wù)的結(jié)束標(biāo)記(COMMIT或或ROLLBACK) 各個事務(wù)的所有更新操作各個事務(wù)的所有更新操作 與與

14、事務(wù)有關(guān)的內(nèi)部更新操作事務(wù)有關(guān)的內(nèi)部更新操作上述內(nèi)容均為日志文件中的一個日志記錄上述內(nèi)容均為日志文件中的一個日志記錄 (log record)每條日志記錄的內(nèi)容每條日志記錄的內(nèi)容 事務(wù)標(biāo)識事務(wù)標(biāo)識 操作操作類型類型(插入、刪除或修改)(插入、刪除或修改) 操作對象(記錄操作對象(記錄ID、Block NO.) 更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值)更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值) 更新后數(shù)據(jù)的新值(對刪除操作而言更新后數(shù)據(jù)的新值(對刪除操作而言, 此項為空值)此項為空值) 每條日志記錄的內(nèi)容每條日志記錄的內(nèi)容 事務(wù)標(biāo)識(標(biāo)明是那個事務(wù))事務(wù)標(biāo)識(標(biāo)明是那個事務(wù)) 操作操作

15、對象對象(記錄(記錄ID、Block NO.) 更新前數(shù)據(jù)所在整個數(shù)據(jù)塊的值(對插入操作而言,此更新前數(shù)據(jù)所在整個數(shù)據(jù)塊的值(對插入操作而言,此項為空值)項為空值) 更新后整個數(shù)據(jù)塊的值(對刪除操作而言更新后整個數(shù)據(jù)塊的值(對刪除操作而言, 此項為空值)此項為空值)1用途用途 進(jìn)行事務(wù)故障恢復(fù)進(jìn)行事務(wù)故障恢復(fù) 進(jìn)行系統(tǒng)故障恢復(fù)進(jìn)行系統(tǒng)故障恢復(fù) 協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)2與靜態(tài)轉(zhuǎn)儲后備副本配合進(jìn)行介質(zhì)故障恢復(fù)與靜態(tài)轉(zhuǎn)儲后備副本配合進(jìn)行介質(zhì)故障恢復(fù)3介質(zhì)故障恢復(fù):介質(zhì)故障恢復(fù):LOG FILE + 動態(tài)轉(zhuǎn)儲后備副本動態(tài)轉(zhuǎn)儲后備副本v為保證數(shù)據(jù)庫是可恢復(fù)的,登記日志文

16、件時必須為保證數(shù)據(jù)庫是可恢復(fù)的,登記日志文件時必須遵循兩條原則遵循兩條原則 登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時間次序登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時間次序 必須先寫日志文件,后寫數(shù)據(jù)庫必須先寫日志文件,后寫數(shù)據(jù)庫 寫日志文件操作:把表示這個修改的日志記錄寫日志文件操作:把表示這個修改的日志記錄 寫到日志文件寫到日志文件 寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中v為什么要先寫日志文件為什么要先寫日志文件 寫數(shù)據(jù)庫和寫日志文件是兩個不同的操作寫數(shù)據(jù)庫和寫日志文件是兩個不同的操作 在這兩個操作之間可能發(fā)生故障在這兩個操作之間可能發(fā)生故障 如果先寫了數(shù)據(jù)庫修改,而

17、在日志文件中沒有登記如果先寫了數(shù)據(jù)庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復(fù)這個修改了下這個修改,則以后就無法恢復(fù)這個修改了 如果先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢如果先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢復(fù)時只不過是多執(zhí)行一次不必要的復(fù)時只不過是多執(zhí)行一次不必要的UNDO操作,并操作,并不會影響數(shù)據(jù)庫的正確性不會影響數(shù)據(jù)庫的正確性10.5.1 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)10.5.2 系統(tǒng)故障的恢復(fù)系統(tǒng)故障的恢復(fù)10.5.3 介質(zhì)故障的恢復(fù)介質(zhì)故障的恢復(fù)v 事務(wù)故障:事務(wù)在運(yùn)行至正常終止點前被中止事務(wù)故障:事務(wù)在運(yùn)行至正常終止點前被中止v 恢復(fù)方法恢復(fù)方法 由恢復(fù)子系

18、統(tǒng)應(yīng)利用日志文件撤消(由恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤消(UNDO)此事)此事務(wù)已對數(shù)據(jù)庫進(jìn)行的修改務(wù)已對數(shù)據(jù)庫進(jìn)行的修改v 事務(wù)故障的恢復(fù)由系統(tǒng)自動完成,不需要用戶干預(yù)事務(wù)故障的恢復(fù)由系統(tǒng)自動完成,不需要用戶干預(yù)1. 反向掃描文件日志(即從最后向前掃描日志文件),反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。查找該事務(wù)的更新操作。2. 對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值更新前的值”(Befor Image, BI)寫入數(shù)據(jù)庫。)寫入數(shù)據(jù)庫。 插入操作,插入操作, “更新前的值更新前的值”為空,則相當(dāng)于做刪除操

19、作為空,則相當(dāng)于做刪除操作 刪除操作,刪除操作,“更新后的值更新后的值”為空,則相當(dāng)于做插入操作為空,則相當(dāng)于做插入操作 若是修改操作,則用若是修改操作,則用BI 代替代替 AI(After Image)3. 繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。新操作,并做同樣處理。4. 如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成了。事務(wù)故障恢復(fù)就完成了。v 系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因 一些未完成事務(wù)對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫一些未完成事務(wù)對數(shù)據(jù)庫

20、的更新已寫入數(shù)據(jù)庫 一些已提交事務(wù)對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得一些已提交事務(wù)對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫及寫入數(shù)據(jù)庫v 恢復(fù)方法恢復(fù)方法 1. Undo 故障發(fā)生時未完成的事務(wù)故障發(fā)生時未完成的事務(wù) 2. Redo 已完成的事務(wù)已完成的事務(wù)v 系統(tǒng)故障的恢復(fù)由系統(tǒng)在系統(tǒng)故障的恢復(fù)由系統(tǒng)在重新啟動時重新啟動時自動完成,不需要自動完成,不需要用戶干預(yù)用戶干預(yù)1. 重裝數(shù)據(jù)庫,重裝數(shù)據(jù)庫, 使數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)使數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)2. 重做已完成的事務(wù)重做已完成的事務(wù)一、問題的提出一、問題的提出二、檢查點技術(shù)二、檢查點技術(shù)三、利用檢查點的恢復(fù)策略三、利用檢查點的恢復(fù)策略v

21、兩個問題兩個問題 搜索整個日志將耗費(fèi)大量的時間搜索整個日志將耗費(fèi)大量的時間 REDO處理:重新執(zhí)行,浪費(fèi)了大量時間處理:重新執(zhí)行,浪費(fèi)了大量時間v具有檢查點(具有檢查點(checkpoint)的恢復(fù)技術(shù))的恢復(fù)技術(shù) 在日志文件中增加檢查點記錄在日志文件中增加檢查點記錄(checkpoint) 增加重新開始文件增加重新開始文件 恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維恢復(fù)子系統(tǒng)在登錄日志文件期間動態(tài)地維護(hù)日志護(hù)日志v檢查點記錄的內(nèi)容檢查點記錄的內(nèi)容 1. 建立檢查點時刻所有正在執(zhí)行的事務(wù)清單建立檢查點時刻所有正在執(zhí)行的事務(wù)清單 2. 這些事務(wù)最近一個日志記錄的地址這些事務(wù)最近一個日志記錄的地址v重新

22、開始文件的內(nèi)容重新開始文件的內(nèi)容 記錄各個檢查點記錄在日志文件中的地址記錄各個檢查點記錄在日志文件中的地址1. 將當(dāng)前將當(dāng)前日志日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上2. 在日志文件中寫入一個檢查點記錄在日志文件中寫入一個檢查點記錄3. 將當(dāng)前將當(dāng)前數(shù)據(jù)數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中4. 把檢查點記錄在日志文件中的地址寫入一個重新開始文件把檢查點記錄在日志文件中的地址寫入一個重新開始文件v 定期定期按照預(yù)定的一個時間間隔按照預(yù)定的一個時間間隔v 不定期不定期按照某種規(guī)則,如日志文件已寫滿一半建立

23、一按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點個檢查點v當(dāng)事務(wù)當(dāng)事務(wù)T在一個檢查點之前提交在一個檢查點之前提交 T對數(shù)據(jù)庫所做的修改已寫入數(shù)據(jù)庫對數(shù)據(jù)庫所做的修改已寫入數(shù)據(jù)庫v在進(jìn)行恢復(fù)處理時,沒有必要對事務(wù)在進(jìn)行恢復(fù)處理時,沒有必要對事務(wù)T執(zhí)行執(zhí)行REDO操作操作Tc (檢查點檢查點)Tf(系統(tǒng)故障系統(tǒng)故障) REDOUNDOUNDO REDOT2T3T4T5不要不要REDOT11. 從重新開始文件中找到最后一個檢查點記錄在日志文件從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址中的地址2 由該地址在日志文件中找到最后一個檢查點記錄由該地址在日志文件中找到最后一個檢查點記錄 由該

24、檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務(wù)由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務(wù)清單清單ACTIVE-LIST 建立兩個事務(wù)隊列建立兩個事務(wù)隊列 UNDO-LIST REDO-LIST 把把ACTIVE-LIST暫時放入暫時放入UNDO-LIST隊列,隊列,REDO隊列暫為空。隊列暫為空。3.從檢查點開始正向掃描日志文件,直到日志文件結(jié)束從檢查點開始正向掃描日志文件,直到日志文件結(jié)束 如有新開始的事務(wù)如有新開始的事務(wù)Ti,把,把Ti暫時放入暫時放入UNDO-LIST隊隊列列 如有提交的事務(wù)如有提交的事務(wù)Tj,把,把Tj從從UNDO-LIST隊列移到隊列移到REDO-LIST隊列隊列4.對對UNDO-LIST中的每個事務(wù)執(zhí)行中的每個事務(wù)執(zhí)行UNDO操作操作, 對對REDO-LIST中的每個事務(wù)執(zhí)行中的每個事務(wù)執(zhí)行REDO操作操作v 介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障,嚴(yán)重影響介質(zhì)故障是對系統(tǒng)影響最為嚴(yán)重的一種故障,嚴(yán)重影響數(shù)據(jù)庫的可用性數(shù)據(jù)庫的可用性 介質(zhì)故障恢復(fù)比較費(fèi)時介質(zhì)故障恢復(fù)比較費(fèi)時 為預(yù)防介質(zhì)故障,為預(yù)防介質(zhì)故障,DBA必須周期性地轉(zhuǎn)儲數(shù)據(jù)庫必須周期性地轉(zhuǎn)儲數(shù)據(jù)庫v 提高數(shù)據(jù)庫可用性的解決方案提高數(shù)據(jù)庫可用性的解決方案 數(shù)據(jù)庫鏡像(數(shù)據(jù)庫鏡像(Mirror)v數(shù)據(jù)庫鏡像數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論