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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)原理與實踐原理與實踐第十章第十章 數(shù)據(jù)庫恢復技術(shù)數(shù)據(jù)庫恢復技術(shù)恢復技術(shù)概述恢復技術(shù)概述1故障類型故障類型22基于日志的恢復技術(shù)基于日志的恢復技術(shù)3備份與恢復備份與恢復45故障恢復策略故障恢復策略10.1 10.1 恢復技術(shù)概述恢復技術(shù)概述v數(shù)據(jù)庫的數(shù)據(jù)存取數(shù)據(jù)庫的數(shù)據(jù)存取 數(shù)據(jù)塊是磁盤數(shù)據(jù)傳輸?shù)幕締挝?,一個數(shù)據(jù)數(shù)據(jù)塊是磁盤數(shù)據(jù)傳輸?shù)幕締挝唬粋€數(shù)據(jù)塊可能包含一個或多個數(shù)據(jù)項。塊可能包含一個或多個數(shù)據(jù)項。 在事務(wù)運行過程中,事務(wù)操作的相關(guān)數(shù)據(jù)塊由在事務(wù)運行過程中,事務(wù)操作的相關(guān)數(shù)據(jù)塊由磁盤向主存輸入,然后再將處理后的數(shù)據(jù)塊輸磁盤向主存輸入,然后再將處理后的數(shù)據(jù)塊輸出回磁盤

2、。出回磁盤。 輸入和輸出操作以數(shù)據(jù)塊為單位完成,其中位輸入和輸出操作以數(shù)據(jù)塊為單位完成,其中位于磁盤上的數(shù)據(jù)塊稱為物理塊,臨時位于主存于磁盤上的數(shù)據(jù)塊稱為物理塊,臨時位于主存的數(shù)據(jù)塊稱為緩沖塊。的數(shù)據(jù)塊稱為緩沖塊。 內(nèi)存中用于臨時存放緩沖塊的區(qū)域稱為磁盤緩內(nèi)存中用于臨時存放緩沖塊的區(qū)域稱為磁盤緩沖區(qū)沖區(qū)310.1 10.1 恢復技術(shù)概述恢復技術(shù)概述v數(shù)據(jù)庫的數(shù)據(jù)存取數(shù)據(jù)庫的數(shù)據(jù)存取 數(shù)據(jù)從物理塊到緩沖塊,稱為輸入(數(shù)據(jù)從物理塊到緩沖塊,稱為輸入(InputInput)操作;數(shù)據(jù)從緩沖塊到物理塊,稱為輸出操作;數(shù)據(jù)從緩沖塊到物理塊,稱為輸出(OutputOutput)操作。執(zhí)行這兩個操作的命令如

3、下:)操作。執(zhí)行這兩個操作的命令如下: Input(x) Input(x) 表示從磁盤上讀出包含數(shù)據(jù)項表示從磁盤上讀出包含數(shù)據(jù)項x x的數(shù)據(jù)塊的數(shù)據(jù)塊傳送到主存的緩沖塊中;傳送到主存的緩沖塊中; Output(x) Output(x) 表示將主存中包含數(shù)據(jù)項表示將主存中包含數(shù)據(jù)項x x的緩沖塊寫的緩沖塊寫到磁盤的物理塊上。到磁盤的物理塊上。410.1 10.1 恢復技術(shù)概述恢復技術(shù)概述v數(shù)據(jù)庫的數(shù)據(jù)存數(shù)據(jù)庫的數(shù)據(jù)存取取 事務(wù)對數(shù)據(jù)進行更新操作時,將所更新的數(shù)據(jù)事務(wù)對數(shù)據(jù)進行更新操作時,將所更新的數(shù)據(jù)項在工作區(qū)和緩沖區(qū)之間進行交換,這個過程項在工作區(qū)和緩沖區(qū)之間進行交換,這個過程用命令用命令re

4、adread和和writewrite實現(xiàn)實現(xiàn) read(x, t)read(x, t):將數(shù)據(jù)項:將數(shù)據(jù)項x x的值傳送到工作區(qū)的局部的值傳送到工作區(qū)的局部變量變量t t中,可簡寫為中,可簡寫為read(x)read(x)。這個操作的執(zhí)行過程。這個操作的執(zhí)行過程如下:如下: 如果包含數(shù)據(jù)項如果包含數(shù)據(jù)項x x 的數(shù)據(jù)緩沖塊不在內(nèi)存,那么的數(shù)據(jù)緩沖塊不在內(nèi)存,那么發(fā)出發(fā)出input(x)input(x)命令;命令; 從緩沖塊中將從緩沖塊中將x x值送到工作區(qū)中的局部變量值送到工作區(qū)中的局部變量t t中。中。 write(x, t)write(x, t):將局部變量:將局部變量t t的值傳送到緩沖

5、塊的的值傳送到緩沖塊的x x中,可簡寫為中,可簡寫為write(x)write(x)。510.1 10.1 恢復技術(shù)概述恢復技術(shù)概述v數(shù)據(jù)庫的數(shù)據(jù)存數(shù)據(jù)庫的數(shù)據(jù)存取取6圖圖10.1 10.1 數(shù)據(jù)庫讀寫操作的數(shù)據(jù)傳遞方式數(shù)據(jù)庫讀寫操作的數(shù)據(jù)傳遞方式 10.1 10.1 恢復技術(shù)概述恢復技術(shù)概述v主要數(shù)據(jù)庫恢復技術(shù)主要數(shù)據(jù)庫恢復技術(shù) 數(shù)據(jù)庫恢復的主要技術(shù)是基于日志的恢復技術(shù)數(shù)據(jù)庫恢復的主要技術(shù)是基于日志的恢復技術(shù)和基于備份的恢復技術(shù)。和基于備份的恢復技術(shù)。 日志文件記錄了事務(wù)對數(shù)據(jù)庫執(zhí)行的各類更新操作,日志文件記錄了事務(wù)對數(shù)據(jù)庫執(zhí)行的各類更新操作,如添加、刪除、修改等等,當需要對數(shù)據(jù)庫系統(tǒng)進如添

6、加、刪除、修改等等,當需要對數(shù)據(jù)庫系統(tǒng)進行恢復時,根據(jù)日志文件中記錄的事務(wù)的運行情況,行恢復時,根據(jù)日志文件中記錄的事務(wù)的運行情況,確定哪些事務(wù)需要進行撤銷,哪些事務(wù)需要重新運確定哪些事務(wù)需要進行撤銷,哪些事務(wù)需要重新運行,這樣就可以將數(shù)據(jù)庫恢復到發(fā)生故障前的某個行,這樣就可以將數(shù)據(jù)庫恢復到發(fā)生故障前的某個一致的狀態(tài)。一致的狀態(tài)。 數(shù)據(jù)庫備份是在某一時刻為數(shù)據(jù)庫建立副本,備份數(shù)據(jù)庫備份是在某一時刻為數(shù)據(jù)庫建立副本,備份過程也稱為數(shù)據(jù)轉(zhuǎn)儲。出現(xiàn)故障時將某個副本重新過程也稱為數(shù)據(jù)轉(zhuǎn)儲。出現(xiàn)故障時將某個副本重新裝載,就可以恢復到建立副本時的正確的數(shù)據(jù)庫狀裝載,就可以恢復到建立副本時的正確的數(shù)據(jù)庫狀態(tài)

7、。態(tài)。710.2 10.2 故障類型故障類型v事務(wù)故障事務(wù)故障 事務(wù)是對數(shù)據(jù)庫操作的集合,對數(shù)據(jù)庫操作產(chǎn)事務(wù)是對數(shù)據(jù)庫操作的集合,對數(shù)據(jù)庫操作產(chǎn)生的故障為事務(wù)故障生的故障為事務(wù)故障 數(shù)據(jù)輸入錯誤數(shù)據(jù)輸入錯誤 運算溢出運算溢出 并發(fā)事務(wù)發(fā)生死鎖并發(fā)事務(wù)發(fā)生死鎖 出現(xiàn)事務(wù)故障,事務(wù)就不會提交,此時數(shù)據(jù)庫出現(xiàn)事務(wù)故障,事務(wù)就不會提交,此時數(shù)據(jù)庫處于一種不正確狀態(tài),可以通過回滾處于一種不正確狀態(tài),可以通過回滾(ROLLBACKROLLBACK)該事務(wù),撤銷該事務(wù)對數(shù)據(jù)庫進)該事務(wù),撤銷該事務(wù)對數(shù)據(jù)庫進行的修改等操作,使數(shù)據(jù)庫返回到之前的正確行的修改等操作,使數(shù)據(jù)庫返回到之前的正確狀態(tài)。狀態(tài)。810.2

8、 10.2 故障類型故障類型v系統(tǒng)故障系統(tǒng)故障 計算機系統(tǒng)出現(xiàn)的故障計算機系統(tǒng)出現(xiàn)的故障 硬件錯誤硬件錯誤 操作系統(tǒng)錯誤操作系統(tǒng)錯誤 發(fā)生系統(tǒng)故障時,需要將已經(jīng)提交的事務(wù)重做發(fā)生系統(tǒng)故障時,需要將已經(jīng)提交的事務(wù)重做(REDOREDO),將正在運行而未提交的事務(wù)撤銷),將正在運行而未提交的事務(wù)撤銷(UNDOUNDO)910.2 10.2 故障類型故障類型 v介質(zhì)故障介質(zhì)故障 存儲數(shù)據(jù)的介質(zhì)(如磁盤)產(chǎn)生的故障稱為介存儲數(shù)據(jù)的介質(zhì)(如磁盤)產(chǎn)生的故障稱為介質(zhì)故障質(zhì)故障 磁頭碰撞磁頭碰撞 磁盤磁道損壞磁盤磁道損壞 介質(zhì)故障發(fā)生的可能性小,但破壞力極大介質(zhì)故障發(fā)生的可能性小,但破壞力極大 介質(zhì)故障的解

9、決措施是維護系統(tǒng)的備份,如將介質(zhì)故障的解決措施是維護系統(tǒng)的備份,如將數(shù)據(jù)庫系統(tǒng)拷貝在磁帶或光盤等介質(zhì)上,定期數(shù)據(jù)庫系統(tǒng)拷貝在磁帶或光盤等介質(zhì)上,定期進行維護進行維護1010.2 10.2 故障類型故障類型 v計算機病毒計算機病毒 計算機病毒是一種人為的破壞,對計算機系統(tǒng)計算機病毒是一種人為的破壞,對計算機系統(tǒng)包括數(shù)據(jù)庫造成極大的危害。包括數(shù)據(jù)庫造成極大的危害。 計算機病毒可以侵入數(shù)據(jù)庫,使數(shù)據(jù)由正確的計算機病毒可以侵入數(shù)據(jù)庫,使數(shù)據(jù)由正確的變?yōu)殄e誤的,還可以通過破壞計算機系統(tǒng)導致變?yōu)殄e誤的,還可以通過破壞計算機系統(tǒng)導致系統(tǒng)故障,更嚴重的甚至破壞存儲介質(zhì)產(chǎn)生介系統(tǒng)故障,更嚴重的甚至破壞存儲介質(zhì)產(chǎn)

10、生介質(zhì)故障。質(zhì)故障。1110.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v通過日志文件進行數(shù)據(jù)庫恢復是另一種常通過日志文件進行數(shù)據(jù)庫恢復是另一種常用的數(shù)據(jù)庫恢復技術(shù)用的數(shù)據(jù)庫恢復技術(shù)v為保證數(shù)據(jù)庫是可恢復的,記錄日志文件為保證數(shù)據(jù)庫是可恢復的,記錄日志文件必須遵循兩條原則:必須遵循兩條原則: 嚴格按照并發(fā)事務(wù)執(zhí)行更新操作的時間次序記嚴格按照并發(fā)事務(wù)執(zhí)行更新操作的時間次序記錄日志文件;錄日志文件; 必須先寫日志文件,后寫數(shù)據(jù)庫更新。必須先寫日志文件,后寫數(shù)據(jù)庫更新。1210.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志的結(jié)構(gòu) 在數(shù)據(jù)庫中,日志以文件的形式存在,是日志

11、在數(shù)據(jù)庫中,日志以文件的形式存在,是日志記錄的序列,記錄對數(shù)據(jù)庫的插入、刪除、修記錄的序列,記錄對數(shù)據(jù)庫的插入、刪除、修改等操作。改等操作。 日志文件主要有兩種格式日志文件主要有兩種格式 以記錄為單位的日志文件以記錄為單位的日志文件 以數(shù)據(jù)塊為單位的日志文件以數(shù)據(jù)塊為單位的日志文件1310.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志的結(jié)構(gòu) 不同數(shù)據(jù)庫系統(tǒng)使用的日志文件具有不同的格不同數(shù)據(jù)庫系統(tǒng)使用的日志文件具有不同的格式式 一個更新操作的日志記錄形式為:一個更新操作的日志記錄形式為:T T Ti i為事務(wù)標識,是執(zhí)行更新操作事務(wù)唯一的標識符為事務(wù)標識,是執(zhí)行更新操作事務(wù)

12、唯一的標識符 X X為事務(wù)為事務(wù)T Ti i要更新的數(shù)據(jù)項要更新的數(shù)據(jù)項x x1 1是舊值,即事務(wù)執(zhí)行更新操作之前數(shù)據(jù)項是舊值,即事務(wù)執(zhí)行更新操作之前數(shù)據(jù)項X X的取值,的取值,如果如果x x1 1在日志記錄中為空,則該操作是插入操作在日志記錄中為空,則該操作是插入操作x2x2是新值,即事務(wù)執(zhí)行更新操作之后數(shù)據(jù)項是新值,即事務(wù)執(zhí)行更新操作之后數(shù)據(jù)項X X的取值,的取值,如果如果x x2 2在日志記錄中為空,則該操作是刪除操作在日志記錄中為空,則該操作是刪除操作1410.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志的結(jié)構(gòu) 【例例10.110.1】定義事務(wù)定義事務(wù)T T1 1

13、,改寫數(shù)據(jù)項,改寫數(shù)據(jù)項A A和和B B的值,的值,再定義事務(wù)再定義事務(wù)T T2 2,求數(shù)據(jù)項,求數(shù)據(jù)項A A、B B之和寫入數(shù)據(jù)項之和寫入數(shù)據(jù)項C C15T1: Read (A)Read (B)A = A+10B = B-20Write (A)Write (B)T2:Read (C)Read (A)Read (B)C = A+BWrite (C)10.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志的結(jié)構(gòu) 【例例10.110.1】16假設(shè)數(shù)據(jù)庫中,數(shù)據(jù)項假設(shè)數(shù)據(jù)庫中,數(shù)據(jù)項A = 100A = 100,B = 200B = 200,數(shù)據(jù)庫的更,數(shù)據(jù)庫的更新日志應(yīng)該包含如下內(nèi)

14、容:新日志應(yīng)該包含如下內(nèi)容:T, startT, A, 100, 110T, B, 200, 180T, commitT, startT, 290/x x表示數(shù)據(jù)項表示數(shù)據(jù)項C C的舊值的舊值T, commit 該日志文件包含了事務(wù)該日志文件包含了事務(wù)T T1 1和和T T2 2對數(shù)據(jù)庫的更新操作,對數(shù)據(jù)庫的更新操作,事務(wù)事務(wù)T T1 1將數(shù)據(jù)項將數(shù)據(jù)項A A和和B B值進行了更新,事務(wù)值進行了更新,事務(wù)T T2 2將數(shù)據(jù)項將數(shù)據(jù)項C C的的值進行了更新。值進行了更新。10.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志的結(jié)構(gòu) 利用日志,可以解決任何不造成磁盤上信息丟利用日

15、志,可以解決任何不造成磁盤上信息丟失的故障,如事務(wù)故障和系統(tǒng)故障。利用日志失的故障,如事務(wù)故障和系統(tǒng)故障。利用日志進行數(shù)據(jù)庫恢復將使用兩個恢復過程:進行數(shù)據(jù)庫恢復將使用兩個恢復過程:UndoUndo(撤銷)和(撤銷)和RedoRedo(重做)。(重做)。 Undo(TUndo(Ti i) ):將事務(wù):將事務(wù)T Ti i所更新的所有數(shù)據(jù)項的值恢復所更新的所有數(shù)據(jù)項的值恢復為舊值為舊值; ; Redo(TRedo(Ti i) ):將事務(wù):將事務(wù)T Ti i所更新的所有數(shù)據(jù)項的值設(shè)置所更新的所有數(shù)據(jù)項的值設(shè)置為新值。為新值。1710.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v日志的結(jié)構(gòu)日志

16、的結(jié)構(gòu) 故障發(fā)生后,系統(tǒng)需要根據(jù)日志決定哪些事務(wù)故障發(fā)生后,系統(tǒng)需要根據(jù)日志決定哪些事務(wù)需要需要UndoUndo,哪些事務(wù)需要,哪些事務(wù)需要RedoRedo 故故障發(fā)生并且被排除后,如果日志記錄了某事務(wù)未障發(fā)生并且被排除后,如果日志記錄了某事務(wù)未提交(即該事務(wù)沒有提交(即該事務(wù)沒有commitcommit標記),執(zhí)行標記),執(zhí)行UndoUndo過程,過程,撤銷該事務(wù),系統(tǒng)恢復到該事務(wù)運行之前的狀態(tài)撤銷該事務(wù),系統(tǒng)恢復到該事務(wù)運行之前的狀態(tài) 如果日志記錄了某事務(wù)已經(jīng)提交(即該事務(wù)有如果日志記錄了某事務(wù)已經(jīng)提交(即該事務(wù)有commitcommit標記),執(zhí)行標記),執(zhí)行RedoRedo過程,重新運

17、行該事務(wù)過程,重新運行該事務(wù) 日志文件創(chuàng)建后,必須妥善保存,保證日志文日志文件創(chuàng)建后,必須妥善保存,保證日志文件不能丟失,否則,一旦出現(xiàn)故障,就無法利件不能丟失,否則,一旦出現(xiàn)故障,就無法利用日志文件進行數(shù)據(jù)庫恢復用日志文件進行數(shù)據(jù)庫恢復1810.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 使用日志對數(shù)據(jù)庫進行恢復,必須搜索日志文使用日志對數(shù)據(jù)庫進行恢復,必須搜索日志文件,確定哪些事務(wù)需要件,確定哪些事務(wù)需要UndoUndo,哪些事務(wù)需要,哪些事務(wù)需要RedoRedo。但是,搜索日志文件需要的時間很長,。但是,搜索日志文件需要的時間很長,而且事務(wù)一旦提交(而且事務(wù)一旦提交

18、(COMMITCOMMIT),可能已經(jīng)對數(shù)),可能已經(jīng)對數(shù)據(jù)庫進行了大量的更新,再據(jù)庫進行了大量的更新,再RedoRedo該事務(wù)同樣會該事務(wù)同樣會造成時間和空間上的不必要浪費。解決這樣問造成時間和空間上的不必要浪費。解決這樣問題的一種方法是對日志周期性地執(zhí)行檢查點題的一種方法是對日志周期性地執(zhí)行檢查點(checkpointcheckpoint)1910.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 檢查點可以作為一類新的日志記錄寫在日志文檢查點可以作為一類新的日志記錄寫在日志文件中,檢查點記錄的主要內(nèi)容包括:件中,檢查點記錄的主要內(nèi)容包括: 建立檢查點時所有正在執(zhí)行的事務(wù);

19、建立檢查點時所有正在執(zhí)行的事務(wù); 這些事務(wù)最近一個日志記錄的地址這些事務(wù)最近一個日志記錄的地址 檢查點有兩種建立機制檢查點有兩種建立機制 一種是靜態(tài)檢查點,即插入檢查點時不允許所有事一種是靜態(tài)檢查點,即插入檢查點時不允許所有事務(wù)對數(shù)據(jù)庫進行更新操作務(wù)對數(shù)據(jù)庫進行更新操作 另一種是動態(tài)檢查點,即插入檢查點時允許事務(wù)對另一種是動態(tài)檢查點,即插入檢查點時允許事務(wù)對數(shù)據(jù)庫進行更新操作數(shù)據(jù)庫進行更新操作2010.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 系統(tǒng)插入靜態(tài)檢查點時,需要進行如下工作:系統(tǒng)插入靜態(tài)檢查點時,需要進行如下工作: 將當前位于日志緩沖區(qū)的所有日志記錄寫入磁盤的將

20、當前位于日志緩沖區(qū)的所有日志記錄寫入磁盤的日志文件上;日志文件上; 將已經(jīng)修改的數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中;將已經(jīng)修改的數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中; 在日志文件中寫入一個檢查點記錄,并寫入磁盤。在日志文件中寫入一個檢查點記錄,并寫入磁盤。 系統(tǒng)可以定期或不定期地建立檢查點。檢查點系統(tǒng)可以定期或不定期地建立檢查點。檢查點可以根據(jù)預定的時間間隔建立,如每隔兩個小可以根據(jù)預定的時間間隔建立,如每隔兩個小時建立一個檢查點;也可以根據(jù)某種規(guī)則建立時建立一個檢查點;也可以根據(jù)某種規(guī)則建立檢查點,如日志文件寫滿一半時建立一個檢查檢查點,如日志文件寫滿一半時建立一個檢查點。點。2110.3 10.3 基于日志

21、的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 使用檢查點能夠提高恢復效率。使用檢查點能夠提高恢復效率。 當事務(wù)當事務(wù)T Ti i在一個檢查點之前提交,在一個檢查點之前提交,T Ti i對數(shù)據(jù)庫所做對數(shù)據(jù)庫所做的修改在建立檢查點之前就已經(jīng)寫入數(shù)據(jù)庫,這樣,的修改在建立檢查點之前就已經(jīng)寫入數(shù)據(jù)庫,這樣,在進行數(shù)據(jù)庫恢復時,沒有必要對事務(wù)在進行數(shù)據(jù)庫恢復時,沒有必要對事務(wù)T Ti i執(zhí)行執(zhí)行RedoRedo操作。操作。2210.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 恢復策略恢復策略 當故障發(fā)生后,可以通過檢查日志來確定在最近的當故障發(fā)生后,可以通過檢查日志來確定在最近的檢查

22、點建立前開始執(zhí)行的最近的一個事務(wù)檢查點建立前開始執(zhí)行的最近的一個事務(wù)T Ti i。要找。要找到這個事務(wù)只需從日志的尾部由后至前搜索日志,到這個事務(wù)只需從日志的尾部由后至前搜索日志,直到找到第一個直到找到第一個記錄(即日志文件中記錄(即日志文件中的最后一個的最后一個),然后繼續(xù)向前搜索直),然后繼續(xù)向前搜索直至發(fā)現(xiàn)第一個至發(fā)現(xiàn)第一個T,start記錄,事務(wù)記錄,事務(wù)T Ti i就是檢查點就是檢查點建立之前開始運行的最后一個事務(wù),只需對事務(wù)建立之前開始運行的最后一個事務(wù),只需對事務(wù)T Ti i和事務(wù)和事務(wù)T Ti i后開始執(zhí)行的所有事務(wù)執(zhí)行后開始執(zhí)行的所有事務(wù)執(zhí)行redoredo和和undound

23、o操操作,即可實現(xiàn)數(shù)據(jù)庫恢復。作,即可實現(xiàn)數(shù)據(jù)庫恢復。2310.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 恢復策略恢復策略 事務(wù)事務(wù)T Ti i以及其后開始執(zhí)行的事務(wù)構(gòu)成一個事務(wù)集合以及其后開始執(zhí)行的事務(wù)構(gòu)成一個事務(wù)集合TT,對于對于TT中的事務(wù)中的事務(wù)T Tk k ,如果日志文件中包含,如果日志文件中包含 commit,則對,則對T Tk k執(zhí)行執(zhí)行RedoRedo操作,否則,對操作,否則,對T Tk k執(zhí)行執(zhí)行UndoUndo操作操作2410.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v檢查點檢查點 【例例10.210.2】在如下日志文件中,如果檢查點設(shè)在如

24、下日志文件中,如果檢查點設(shè)置在置在T, commit之前,出現(xiàn)故障并排除后,之前,出現(xiàn)故障并排除后,由于事務(wù)由于事務(wù)T1T1在檢查點之前已經(jīng)提交,因此不必在檢查點之前已經(jīng)提交,因此不必執(zhí)行任何操作;事務(wù)執(zhí)行任何操作;事務(wù)T T2 2在檢查點之后、故障發(fā)在檢查點之后、故障發(fā)生前提交,需要進行生前提交,需要進行RedoRedo操作實現(xiàn)數(shù)據(jù)庫的恢操作實現(xiàn)數(shù)據(jù)庫的恢復;而事務(wù)復;而事務(wù)T T3 3在發(fā)生故障時沒有提交,因此執(zhí)在發(fā)生故障時沒有提交,因此執(zhí)行行UndoUndo操作。操作。2510.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)26/x表示數(shù)據(jù)項表示數(shù)據(jù)項C的舊值的舊值發(fā)生故障發(fā)生故障1

25、0.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 基于日志的恢復是在故障發(fā)生并排除后,數(shù)據(jù)基于日志的恢復是在故障發(fā)生并排除后,數(shù)據(jù)庫系統(tǒng)重新啟動,利用日志文件的事務(wù)記錄對庫系統(tǒng)重新啟動,利用日志文件的事務(wù)記錄對數(shù)據(jù)庫進行操作,將數(shù)據(jù)庫恢復到故障發(fā)生之數(shù)據(jù)庫進行操作,將數(shù)據(jù)庫恢復到故障發(fā)生之前的某個正確狀態(tài)的過程前的某個正確狀態(tài)的過程2710.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 延遲更新技術(shù)延遲更新技術(shù) 延遲更新是指在日志文件中記錄所有對數(shù)據(jù)庫的更延遲更新是指在日志文件中記錄所有對數(shù)據(jù)庫的更新操作,在事務(wù)提交時,一

26、次性地執(zhí)行全部更新操新操作,在事務(wù)提交時,一次性地執(zhí)行全部更新操作。所謂的作。所謂的“延遲延遲”是指實際的更新操作比在日志是指實際的更新操作比在日志中記錄這些操作,從時間上看要延遲到事務(wù)提交時中記錄這些操作,從時間上看要延遲到事務(wù)提交時 延遲更新技術(shù)要求每個事務(wù)提交之前不能對數(shù)據(jù)庫延遲更新技術(shù)要求每個事務(wù)提交之前不能對數(shù)據(jù)庫進行更新,只能在日志中記錄對數(shù)據(jù)庫的更新操作,進行更新,只能在日志中記錄對數(shù)據(jù)庫的更新操作,而且在一個事務(wù)對數(shù)據(jù)庫進行的更新操作沒有完全而且在一個事務(wù)對數(shù)據(jù)庫進行的更新操作沒有完全寫入日志文件的情況下,不能夠提交事務(wù)。寫入日志文件的情況下,不能夠提交事務(wù)。2810.3 10

27、.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 延遲更新技術(shù)延遲更新技術(shù) 延遲更新技術(shù)保證了在對數(shù)據(jù)庫中數(shù)據(jù)進行實際更延遲更新技術(shù)保證了在對數(shù)據(jù)庫中數(shù)據(jù)進行實際更新(即實際對數(shù)據(jù)庫執(zhí)行寫操作)時,事務(wù)已經(jīng)正新(即實際對數(shù)據(jù)庫執(zhí)行寫操作)時,事務(wù)已經(jīng)正確提交,這樣,如果在對數(shù)據(jù)庫進行更新時發(fā)生故確提交,這樣,如果在對數(shù)據(jù)庫進行更新時發(fā)生故障,由于事務(wù)已經(jīng)提交,只需對事務(wù)進行障,由于事務(wù)已經(jīng)提交,只需對事務(wù)進行RedoRedo操作操作即可實現(xiàn)恢復。如果在一個事務(wù)提交之前,出現(xiàn)故即可實現(xiàn)恢復。如果在一個事務(wù)提交之前,出現(xiàn)故障,由于沒有對數(shù)據(jù)庫執(zhí)行實際的更新操作,數(shù)據(jù)障,由于

28、沒有對數(shù)據(jù)庫執(zhí)行實際的更新操作,數(shù)據(jù)庫中數(shù)據(jù)項的值仍然是舊值,因此只需將日志中關(guān)庫中數(shù)據(jù)項的值仍然是舊值,因此只需將日志中關(guān)于這個事務(wù)的記錄刪除即可。于這個事務(wù)的記錄刪除即可。2910.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 延遲更新技術(shù)延遲更新技術(shù) 例例10.210.2中的日志文件,記錄了對數(shù)據(jù)項中的日志文件,記錄了對數(shù)據(jù)項A A、B B、C C的的更新,表更新,表10.110.1顯示采用延遲更新技術(shù)時,在不同時顯示采用延遲更新技術(shù)時,在不同時刻發(fā)生故障后的恢復方法??贪l(fā)生故障后的恢復方法。30日志文件數(shù)據(jù)庫故障解決方法(系統(tǒng)重啟后)write (A

29、)write (B)write (C)故障故障故障故障T1未提交,刪除日志中T1的信息 T1已經(jīng)提交,Redo事務(wù)T1T1已經(jīng)提交, Redo事務(wù)T1;T2未提交,刪除日志中T2的信息T1、T2都已經(jīng)提交,Redo事務(wù)T1和T2表表10.1 10.1 采用延遲更新技術(shù)不同時刻發(fā)生故障的恢復方法采用延遲更新技術(shù)不同時刻發(fā)生故障的恢復方法10.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 即時更新技術(shù)即時更新技術(shù) 即時更新是指對數(shù)據(jù)庫的更新操作在事務(wù)提交之前即時更新是指對數(shù)據(jù)庫的更新操作在事務(wù)提交之前就寫入數(shù)據(jù)庫中,未提交的事務(wù)仍然處于運行狀態(tài),就寫入數(shù)據(jù)庫中,

30、未提交的事務(wù)仍然處于運行狀態(tài),處于運行狀態(tài)的事務(wù)直接對數(shù)據(jù)庫進行更新。處于運行狀態(tài)的事務(wù)直接對數(shù)據(jù)庫進行更新。 即時更新技術(shù)要求事務(wù)對數(shù)據(jù)庫所有的更新操作安即時更新技術(shù)要求事務(wù)對數(shù)據(jù)庫所有的更新操作安全地記錄在日志文件之前,該事務(wù)既不能夠?qū)嶋H全地記錄在日志文件之前,該事務(wù)既不能夠?qū)嶋H的數(shù)據(jù)庫進行更新也不能夠提交。的數(shù)據(jù)庫進行更新也不能夠提交。3110.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 即時更新技術(shù)即時更新技術(shù) 采用即時更新技術(shù),日志文件會即時記錄事務(wù)對數(shù)采用即時更新技術(shù),日志文件會即時記錄事務(wù)對數(shù)據(jù)庫進行的更新操作,一旦出現(xiàn)故障,可以根據(jù)日據(jù)

31、庫進行的更新操作,一旦出現(xiàn)故障,可以根據(jù)日志中的更新記錄將已提交事務(wù)的相關(guān)數(shù)據(jù)項設(shè)置為志中的更新記錄將已提交事務(wù)的相關(guān)數(shù)據(jù)項設(shè)置為新值,即執(zhí)行新值,即執(zhí)行RedoRedo操作,將未提交事務(wù)的相關(guān)數(shù)據(jù)操作,將未提交事務(wù)的相關(guān)數(shù)據(jù)項恢復為原來的舊值,即執(zhí)行項恢復為原來的舊值,即執(zhí)行UndoUndo操作,并從日志操作,并從日志文件中刪除該事務(wù)的信息。文件中刪除該事務(wù)的信息。3210.3 10.3 基于日志的恢復技術(shù)基于日志的恢復技術(shù)v基于日志的恢復基于日志的恢復 即時更新技術(shù)即時更新技術(shù) 例例10.210.2中的日志文件,記錄了對數(shù)據(jù)項中的日志文件,記錄了對數(shù)據(jù)項A A、B B、C C的的更新,表更

32、新,表10.210.2顯示采用即時更新技術(shù)時,在不同時顯示采用即時更新技術(shù)時,在不同時刻發(fā)生故障后的恢復方法。刻發(fā)生故障后的恢復方法。33日志文件數(shù)據(jù)庫故障解決方法(系統(tǒng)重啟后)write (A)write (B)write (C)故障故障故障故障事務(wù)T1沒有提交,刪除日志中T1的信息并Undo事務(wù)T1T1已經(jīng)提交,Redo事務(wù)T1T1已經(jīng)提交,Redo事務(wù)T1;T2未提交,刪除日志中T2的信息并Undo事務(wù)T2T1、T2都已經(jīng)提交,Redo事務(wù)T1和T2表表10.2 10.2 采用延遲更新技術(shù)不同時刻發(fā)生故障的恢復方法采用延遲更新技術(shù)不同時刻發(fā)生故障的恢復方法10.4 10.4 備份與恢復備

33、份與恢復v另一種數(shù)據(jù)庫恢復技術(shù)是利用數(shù)據(jù)庫備份另一種數(shù)據(jù)庫恢復技術(shù)是利用數(shù)據(jù)庫備份進行恢復?;趥浞莸幕謴图夹g(shù)是利用在進行恢復。基于備份的恢復技術(shù)是利用在其它存儲設(shè)備上建立的數(shù)據(jù)庫副本進行數(shù)其它存儲設(shè)備上建立的數(shù)據(jù)庫副本進行數(shù)據(jù)恢復的技術(shù)。建立副本也稱為數(shù)據(jù)轉(zhuǎn)儲,據(jù)恢復的技術(shù)。建立副本也稱為數(shù)據(jù)轉(zhuǎn)儲,是將數(shù)據(jù)庫復制到其它存儲設(shè)備(如磁帶、是將數(shù)據(jù)庫復制到其它存儲設(shè)備(如磁帶、磁盤或光盤等)上進行保存的過程。磁盤或光盤等)上進行保存的過程。3410.4 10.4 備份與恢復備份與恢復v如果當數(shù)據(jù)庫處于某個狀態(tài)如果當數(shù)據(jù)庫處于某個狀態(tài)S S的時候進行了的時候進行了數(shù)據(jù)轉(zhuǎn)儲,當數(shù)據(jù)庫發(fā)生故障時,利用

34、轉(zhuǎn)數(shù)據(jù)轉(zhuǎn)儲,當數(shù)據(jù)庫發(fā)生故障時,利用轉(zhuǎn)儲的副本將數(shù)據(jù)庫進行恢復到進行數(shù)據(jù)轉(zhuǎn)儲的副本將數(shù)據(jù)庫進行恢復到進行數(shù)據(jù)轉(zhuǎn)儲時的狀態(tài)儲時的狀態(tài)S S。但是,進行數(shù)據(jù)轉(zhuǎn)儲后到發(fā)。但是,進行數(shù)據(jù)轉(zhuǎn)儲后到發(fā)生故障這段時間內(nèi)運行的事務(wù)無法進行恢生故障這段時間內(nèi)運行的事務(wù)無法進行恢復,因此,要想恢復到故障發(fā)生時的數(shù)據(jù)復,因此,要想恢復到故障發(fā)生時的數(shù)據(jù)庫系統(tǒng)狀態(tài),必須根據(jù)日志文件重新運行庫系統(tǒng)狀態(tài),必須根據(jù)日志文件重新運行(RedoRedo)這段時間內(nèi)的事務(wù)。)這段時間內(nèi)的事務(wù)。3510.4 10.4 備份與恢復備份與恢復v隨著數(shù)據(jù)庫規(guī)模的增大,進行數(shù)據(jù)轉(zhuǎn)儲需隨著數(shù)據(jù)庫規(guī)模的增大,進行數(shù)據(jù)轉(zhuǎn)儲需要的時間也會變長,因

35、此不能頻繁地進行要的時間也會變長,因此不能頻繁地進行數(shù)據(jù)轉(zhuǎn)儲,而是應(yīng)該周期性的進行。數(shù)據(jù)轉(zhuǎn)儲,而是應(yīng)該周期性的進行。v根據(jù)轉(zhuǎn)儲數(shù)據(jù)的規(guī)模,可分為完全轉(zhuǎn)儲和根據(jù)轉(zhuǎn)儲數(shù)據(jù)的規(guī)模,可分為完全轉(zhuǎn)儲和增量轉(zhuǎn)儲。增量轉(zhuǎn)儲。 完全轉(zhuǎn)儲是將全部數(shù)據(jù)庫復制到其它存儲介質(zhì),完全轉(zhuǎn)儲是將全部數(shù)據(jù)庫復制到其它存儲介質(zhì),作為數(shù)據(jù)庫的副本保存。作為數(shù)據(jù)庫的副本保存。 增量轉(zhuǎn)儲是轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù),增量轉(zhuǎn)儲是轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù),而對于上次轉(zhuǎn)儲過的,沒有改變的數(shù)據(jù)不進行而對于上次轉(zhuǎn)儲過的,沒有改變的數(shù)據(jù)不進行重復的轉(zhuǎn)儲。重復的轉(zhuǎn)儲。3610.4 10.4 備份與恢復備份與恢復v根據(jù)轉(zhuǎn)儲的方式可以分為靜態(tài)轉(zhuǎn)

36、儲和動態(tài)根據(jù)轉(zhuǎn)儲的方式可以分為靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲。轉(zhuǎn)儲。 靜態(tài)轉(zhuǎn)儲是在數(shù)據(jù)庫系統(tǒng)中無事務(wù)運行時進行靜態(tài)轉(zhuǎn)儲是在數(shù)據(jù)庫系統(tǒng)中無事務(wù)運行時進行的轉(zhuǎn)儲操作。的轉(zhuǎn)儲操作。 動態(tài)轉(zhuǎn)儲是指在轉(zhuǎn)儲的同時允許對數(shù)據(jù)庫進行動態(tài)轉(zhuǎn)儲是指在轉(zhuǎn)儲的同時允許對數(shù)據(jù)庫進行存取或修改。存取或修改。3710.4 10.4 備份與恢復備份與恢復v在靜態(tài)轉(zhuǎn)儲方式中,也可以建立日志文件。在靜態(tài)轉(zhuǎn)儲方式中,也可以建立日志文件。當數(shù)據(jù)庫毀壞后可重新裝入數(shù)據(jù)庫副本把當數(shù)據(jù)庫毀壞后可重新裝入數(shù)據(jù)庫副本把數(shù)據(jù)庫恢復到轉(zhuǎn)儲結(jié)束時刻的正確狀態(tài),數(shù)據(jù)庫恢復到轉(zhuǎn)儲結(jié)束時刻的正確狀態(tài),然后利用日志文件,把已提交的事務(wù)進行然后利用日志文件,把已提交的事

37、務(wù)進行RedoRedo處理,對故障發(fā)生時尚未提交的事務(wù)處理,對故障發(fā)生時尚未提交的事務(wù)進行進行UndoUndo處理。這樣不必重新運行那些已處理。這樣不必重新運行那些已完成的事務(wù)就可以把數(shù)據(jù)庫恢復到故障前完成的事務(wù)就可以把數(shù)據(jù)庫恢復到故障前某一時刻的正確狀態(tài)。某一時刻的正確狀態(tài)。3810.5 10.5 故障恢復策略故障恢復策略v日志文件與數(shù)據(jù)轉(zhuǎn)儲是兩種重要的數(shù)據(jù)庫日志文件與數(shù)據(jù)轉(zhuǎn)儲是兩種重要的數(shù)據(jù)庫恢復方式,能夠?qū)ο到y(tǒng)運行過程中發(fā)生的恢復方式,能夠?qū)ο到y(tǒng)運行過程中發(fā)生的事務(wù)故障、系統(tǒng)故障以及介質(zhì)故障進行恢事務(wù)故障、系統(tǒng)故障以及介質(zhì)故障進行恢復,將數(shù)據(jù)庫恢復到故障發(fā)生前的某個正復,將數(shù)據(jù)庫恢復到故

38、障發(fā)生前的某個正確狀態(tài)。不同故障的恢復策略和方法也不確狀態(tài)。不同故障的恢復策略和方法也不相同相同3910.5 10.5 故障恢復策略故障恢復策略v事務(wù)故障的恢復事務(wù)故障的恢復 事務(wù)運行至正常結(jié)束之前被中止,則出現(xiàn)事務(wù)事務(wù)運行至正常結(jié)束之前被中止,則出現(xiàn)事務(wù)故障。一旦出現(xiàn)事務(wù)故障,系統(tǒng)將根據(jù)日志文故障。一旦出現(xiàn)事務(wù)故障,系統(tǒng)將根據(jù)日志文件對出現(xiàn)故障的事務(wù)進行件對出現(xiàn)故障的事務(wù)進行UndoUndo操作,撤銷該事操作,撤銷該事務(wù)對數(shù)據(jù)庫已經(jīng)進行的修改。務(wù)對數(shù)據(jù)庫已經(jīng)進行的修改。4010.5 10.5 故障恢復策略故障恢復策略v事務(wù)故障的恢復事務(wù)故障的恢復 事務(wù)故障的恢復步驟為事務(wù)故障的恢復步驟為 由

39、后向前掃描日志文件,查找出現(xiàn)故障事務(wù)對數(shù)據(jù)由后向前掃描日志文件,查找出現(xiàn)故障事務(wù)對數(shù)據(jù)進行的更新操作;進行的更新操作; 為每個更新操作執(zhí)行其逆操作,即將更新前的舊值為每個更新操作執(zhí)行其逆操作,即將更新前的舊值重新寫入數(shù)據(jù)庫。如果記錄是插入操作,則相當于重新寫入數(shù)據(jù)庫。如果記錄是插入操作,則相當于做刪除操作;若記錄是刪除操作,則做插入操作;做刪除操作;若記錄是刪除操作,則做插入操作;若是修改操作,則相當于用修改前的舊值代替修改若是修改操作,則相當于用修改前的舊值代替修改后的新值;后的新值; 繼續(xù)掃描日志文件,對該事務(wù)的每個更新操作進行繼續(xù)掃描日志文件,對該事務(wù)的每個更新操作進行恢復,直到故障事務(wù)

40、開始標記為止,完成事務(wù)故障恢復,直到故障事務(wù)開始標記為止,完成事務(wù)故障的恢復的恢復4110.5 10.5 故障恢復策略故障恢復策略v系統(tǒng)故障的恢復系統(tǒng)故障的恢復 發(fā)生系統(tǒng)故障時,未完成的事務(wù)對數(shù)據(jù)庫的部發(fā)生系統(tǒng)故障時,未完成的事務(wù)對數(shù)據(jù)庫的部分更新可能已經(jīng)完成并寫入數(shù)據(jù)庫,已完成的分更新可能已經(jīng)完成并寫入數(shù)據(jù)庫,已完成的事務(wù)對數(shù)據(jù)庫的更新可能留在緩沖區(qū)中還沒有事務(wù)對數(shù)據(jù)庫的更新可能留在緩沖區(qū)中還沒有寫入數(shù)據(jù)庫,這時需要對這兩類事務(wù)進行處理寫入數(shù)據(jù)庫,這時需要對這兩類事務(wù)進行處理4210.5 10.5 故障恢復策略故障恢復策略v系統(tǒng)故障的恢復系統(tǒng)故障的恢復 系統(tǒng)故障的恢復步驟系統(tǒng)故障的恢復步驟

41、從前向后掃描日志文件,找出故障發(fā)生前已經(jīng)完成從前向后掃描日志文件,找出故障發(fā)生前已經(jīng)完成的事務(wù)(在日志文件中既有事務(wù)開始記錄,也有事的事務(wù)(在日志文件中既有事務(wù)開始記錄,也有事務(wù)結(jié)束記錄),將其事務(wù)標識記入務(wù)結(jié)束記錄),將其事務(wù)標識記入RedoRedo隊列。同時隊列。同時找出故障發(fā)生時尚未完成的事務(wù)(在日志文件中只找出故障發(fā)生時尚未完成的事務(wù)(在日志文件中只有事務(wù)開始記錄,沒有事務(wù)結(jié)束記錄),將其事務(wù)有事務(wù)開始記錄,沒有事務(wù)結(jié)束記錄),將其事務(wù)標識記入標識記入UndoUndo隊列;隊列; 對于對于RedoRedo隊列中的事務(wù)進行重做,方法是重新執(zhí)行隊列中的事務(wù)進行重做,方法是重新執(zhí)行日志文件中

42、登記的日志文件中登記的RedoRedo事務(wù)的操作;事務(wù)的操作; 對于對于UndoUndo隊列中的事務(wù)進行撤銷,方法是從后向前隊列中的事務(wù)進行撤銷,方法是從后向前掃描日志文件中每個掃描日志文件中每個UndoUndo事務(wù)的操作,執(zhí)行其逆操事務(wù)的操作,執(zhí)行其逆操作。作。4310.5 10.5 故障恢復策略故障恢復策略v系統(tǒng)故障的恢復系統(tǒng)故障的恢復 介質(zhì)故障的恢復介質(zhì)故障的恢復 發(fā)生介質(zhì)故障后,磁盤上的數(shù)據(jù)以及日志文件都會發(fā)生介質(zhì)故障后,磁盤上的數(shù)據(jù)以及日志文件都會遭到破壞,恢復時,既要重新安裝數(shù)據(jù)庫,又要重遭到破壞,恢復時,既要重新安裝數(shù)據(jù)庫,又要重做已完成的事務(wù),具體步驟是:做已完成的事務(wù),具體步

43、驟是: 裝入最新的數(shù)據(jù)庫副本,即距故障發(fā)生時刻最近的裝入最新的數(shù)據(jù)庫副本,即距故障發(fā)生時刻最近的轉(zhuǎn)儲副本,使數(shù)據(jù)庫恢復到最近一次轉(zhuǎn)儲時的一致轉(zhuǎn)儲副本,使數(shù)據(jù)庫恢復到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。對于動態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還需同時裝性狀態(tài)。對于動態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還需同時裝入轉(zhuǎn)儲開始時刻的日志文件副本,利用系統(tǒng)故障的入轉(zhuǎn)儲開始時刻的日志文件副本,利用系統(tǒng)故障的恢復方法,將數(shù)據(jù)庫恢復到一致性狀態(tài);恢復方法,將數(shù)據(jù)庫恢復到一致性狀態(tài); 裝入相應(yīng)的日志文件副本(轉(zhuǎn)儲結(jié)束時刻的日志文裝入相應(yīng)的日志文件副本(轉(zhuǎn)儲結(jié)束時刻的日志文件副本),重做已完成的事務(wù)。件副本),重做已完成的事務(wù)。 這樣就可以將數(shù)據(jù)庫恢

44、復至故障發(fā)生前某一時刻的這樣就可以將數(shù)據(jù)庫恢復至故障發(fā)生前某一時刻的一致性狀態(tài)一致性狀態(tài)44本章小結(jié)本章小結(jié)v本章介紹了事務(wù)故障、系統(tǒng)故障和介質(zhì)故本章介紹了事務(wù)故障、系統(tǒng)故障和介質(zhì)故障以及出現(xiàn)這些故障時,數(shù)據(jù)庫系統(tǒng)的常障以及出現(xiàn)這些故障時,數(shù)據(jù)庫系統(tǒng)的常用恢復技術(shù)。常用的數(shù)據(jù)庫恢復技術(shù)是基用恢復技術(shù)。常用的數(shù)據(jù)庫恢復技術(shù)是基于數(shù)據(jù)庫副本的恢復技術(shù)和基于日志的恢于數(shù)據(jù)庫副本的恢復技術(shù)和基于日志的恢復技術(shù)。對于事務(wù)故障、系統(tǒng)故障可以根復技術(shù)。對于事務(wù)故障、系統(tǒng)故障可以根據(jù)日志文件,決定哪些事務(wù)需要據(jù)日志文件,決定哪些事務(wù)需要RedoRedo,哪,哪些事務(wù)需要些事務(wù)需要UndoUndo,進而根據(jù)不同

45、的操作進,進而根據(jù)不同的操作進行恢復;介質(zhì)故障通常同時使用數(shù)據(jù)轉(zhuǎn)儲行恢復;介質(zhì)故障通常同時使用數(shù)據(jù)轉(zhuǎn)儲得到的數(shù)據(jù)庫副本和記錄數(shù)據(jù)庫更新操作得到的數(shù)據(jù)庫副本和記錄數(shù)據(jù)庫更新操作的日志文件進行恢復。的日志文件進行恢復。45本章小結(jié)本章小結(jié)v在基于日志恢復數(shù)據(jù)庫時,引入了檢查點在基于日志恢復數(shù)據(jù)庫時,引入了檢查點的概念,恢復時,沒有必要掃描整個日志的概念,恢復時,沒有必要掃描整個日志文件而只需執(zhí)行檢查點即可得到需要恢復文件而只需執(zhí)行檢查點即可得到需要恢復的事務(wù)。的事務(wù)。46思考與練習題思考與練習題一、一、選擇題選擇題1.1.若若系統(tǒng)在運行過程中,由于某種硬件故障,使存儲在外存系統(tǒng)在運行過程中,由于某

46、種硬件故障,使存儲在外存上的數(shù)據(jù)部分損失或全部損失,這種情況稱為(上的數(shù)據(jù)部分損失或全部損失,這種情況稱為( )。)。 A A. . 介質(zhì)故障介質(zhì)故障B B. . 運行故障運行故障 C C. . 系統(tǒng)故障系統(tǒng)故障 D. D. 事務(wù)故障事務(wù)故障2.2.在在DBMSDBMS中實現(xiàn)事務(wù)持久性的子系統(tǒng)是(中實現(xiàn)事務(wù)持久性的子系統(tǒng)是( )。)。 A A. . 安全管理子系統(tǒng)安全管理子系統(tǒng) B B. . 完整性管理子系統(tǒng)完整性管理子系統(tǒng) C C. . 并發(fā)控制子系統(tǒng)并發(fā)控制子系統(tǒng) D. D. 恢復管理子系統(tǒng)恢復管理子系統(tǒng)3.3.后援后援副本的作用是(副本的作用是( )。)。 A A. . 保障安全性保障安

47、全性 B B. . 一致性控制一致性控制 C C. . 故障后的恢復故障后的恢復 D D. . 數(shù)據(jù)的轉(zhuǎn)儲數(shù)據(jù)的轉(zhuǎn)儲47思考與練習題思考與練習題4.4.事務(wù)事務(wù)日志用于保存(日志用于保存( )。)。 A A. . 程序運行過程程序運行過程 B B. . 程序的執(zhí)行程序的執(zhí)行結(jié)果結(jié)果 C C. . 對數(shù)據(jù)的更新操作對數(shù)據(jù)的更新操作D. D. 數(shù)據(jù)操作數(shù)據(jù)操作5.5.數(shù)據(jù)庫數(shù)據(jù)庫恢復的基礎(chǔ)是利用轉(zhuǎn)儲的冗余數(shù)據(jù)。這些轉(zhuǎn)儲的冗恢復的基礎(chǔ)是利用轉(zhuǎn)儲的冗余數(shù)據(jù)。這些轉(zhuǎn)儲的冗余數(shù)據(jù)包括(余數(shù)據(jù)包括( )。)。 A A. . 數(shù)據(jù)字典、應(yīng)用程序、審計檔案、數(shù)據(jù)庫后備副本數(shù)據(jù)字典、應(yīng)用程序、審計檔案、數(shù)據(jù)庫后備副本 B B. . 數(shù)據(jù)字典、應(yīng)用程序、審計檔案、日志文件數(shù)據(jù)字典、應(yīng)用程序、審計檔案、日志文件 C C. . 日志文件、數(shù)據(jù)庫后備副本日志文件、數(shù)據(jù)庫后備副本 D D. . 數(shù)據(jù)字典、應(yīng)用程序、數(shù)據(jù)庫后備副本數(shù)據(jù)字典、應(yīng)用程序、數(shù)據(jù)庫后備副本48思考與練習題思考與練習題二、二、填空填空題題1.1.數(shù)據(jù)數(shù)據(jù)恢復

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論