下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 7 章 數(shù)據(jù)庫恢復(fù)技術(shù)1. 是一系列的數(shù)據(jù)庫操作,是數(shù)據(jù)庫應(yīng)用程序的根本邏輯單元。2. 事務(wù)處理技術(shù)主要包括 技術(shù)和 技術(shù)。3. 在SQL語言中,定義事務(wù)控制的語句主要有 . 和 。4. 事務(wù)具有四個(gè)特性:它們是 . . 和 。這個(gè)四個(gè)特性也簡稱為 特性。5. 把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一的正確狀態(tài)(亦稱為一致狀態(tài))的功能,這就是 。6. 數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分為. . 和 等。7. 建立冗余數(shù)據(jù)最常用的技術(shù)是 和 。通常在一個(gè)數(shù)據(jù)庫系統(tǒng)中,這兩種方法是一起使用的。8. 轉(zhuǎn)儲(chǔ)可分為 和 ,轉(zhuǎn)儲(chǔ)方式可以有 和 。9. 是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。 主要有兩
2、種格式:以 為單位的日志文件和以 為單位的日志文件。10. 試述事務(wù)的概念及事務(wù)的四個(gè)特性。11. 為什么事務(wù)非正常結(jié)束時(shí)會(huì)影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請列舉一例說明之。12. 數(shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?13. 數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破 壞數(shù)據(jù)庫數(shù)據(jù)?14. 數(shù)據(jù)庫恢復(fù)的根本技術(shù)有哪些?15. 數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)的意義是什么? 試比擬各種數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法。16. 什么是日志文件?為什么要設(shè)立日志文件?17. 登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?18. 針對不同的故障,試給出恢復(fù)的策略和方法。 (即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故
3、障 的恢復(fù)?介質(zhì)故障恢復(fù)?)19. 什么是檢查點(diǎn)記錄,檢查點(diǎn)記錄包括哪些內(nèi)容?20. 具有檢查點(diǎn)的恢復(fù)技術(shù)有什么優(yōu)點(diǎn)?試舉一個(gè)具體的例子加以說明。21. 試述使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟。22. 什么是數(shù)據(jù)庫鏡像?它有什么用途? 答案1. 事務(wù)2. 數(shù)據(jù)庫恢復(fù) 并發(fā)控制3. BEGIN TRANSACTION COMMIT ROLLBACK4. 原子性(Atomicity ) 一致性(Consistency )隔離性(Isolation )持續(xù)性(Durability ) ACID5. 數(shù)據(jù)庫的恢復(fù)6. 事務(wù)故障 系統(tǒng)故障 介質(zhì)故障 計(jì)算機(jī)病毒7. 數(shù)據(jù)轉(zhuǎn)儲(chǔ) 登錄日志文件8. 靜態(tài)轉(zhuǎn)儲(chǔ) 動(dòng)態(tài)轉(zhuǎn)
4、儲(chǔ) 海量轉(zhuǎn)儲(chǔ) 增量轉(zhuǎn)儲(chǔ)9. 日志文件 記錄 數(shù)據(jù)塊10. 事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做 , 是一個(gè)不可 分割的工作單位。事務(wù)具有四個(gè)特性:原子性 Atomicity 、一致性 Consistency 、隔 離性 Isolation 和持續(xù)性 Durability 。這個(gè)四個(gè)特性也簡稱為 ACID 特性。原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。 一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。 隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對 其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行
5、的各個(gè)事務(wù)之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性Permanence,指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù) 的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。11. 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。 如果數(shù)據(jù)庫系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改 有一局部已寫入物理數(shù)據(jù)庫, 這時(shí)數(shù)據(jù)庫就處于一種不正確的狀態(tài), 或者說是不一致的狀態(tài)。 例如某工廠的庫存管理系統(tǒng)中, 要把數(shù)量為 Q 的某種零件從倉庫 1 移到倉庫 2 存放。那么可 以定義一個(gè)事務(wù)T,T包括兩個(gè)操作;Q1=Q1-Q Q2=Q2
6、+Q如果T非正常終止時(shí)只做了第一 個(gè)操作,那么數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。12. 因?yàn)橛?jì)算機(jī)系統(tǒng)中硬件的故障、 軟件的錯(cuò)誤、 操作員的失誤以及惡意的破壞是不可防止 的,這些故障輕那么造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重那么破壞數(shù)據(jù)庫, 使數(shù)據(jù)庫中全部或局部數(shù)據(jù)喪失,因此必須要有恢復(fù)子系統(tǒng)?;謴?fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一的正確狀態(tài)亦稱為一致狀 態(tài)或完整狀態(tài)。13. 數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類: 1事務(wù)內(nèi)部的故障; 2系統(tǒng)故障; 3 介質(zhì)故障; 4 計(jì)算機(jī)病毒。事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障
7、和計(jì)算機(jī)病毒破壞數(shù)據(jù)庫數(shù)據(jù)。14. 數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件是數(shù)據(jù)庫恢復(fù)的根本技術(shù)。 當(dāng)系統(tǒng)運(yùn)行過程中發(fā)生故障, 利用 轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個(gè)一致性狀態(tài)。15. 數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫恢復(fù)中采用的根本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即 DBA 定期地將數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù) 庫恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)。靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。如上圖所示。 靜態(tài)轉(zhuǎn)儲(chǔ)簡單,但必須等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲(chǔ) 結(jié)束才能執(zhí)行。顯然,這會(huì)降低數(shù)據(jù)庫的可用性。動(dòng)態(tài)轉(zhuǎn)儲(chǔ):指轉(zhuǎn)儲(chǔ)期間允許對數(shù)據(jù)
8、庫進(jìn)行 存取或修改。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)可克服靜態(tài)轉(zhuǎn)儲(chǔ)的缺點(diǎn),它不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不 會(huì)影響新事務(wù)的運(yùn)行。但是,轉(zhuǎn)儲(chǔ)結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證正確有效。因?yàn)檗D(zhuǎn)儲(chǔ) 期間運(yùn)行的事務(wù)可能修改了某些數(shù)據(jù), 使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。 為此, 必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對數(shù)據(jù)庫的修改活動(dòng)登記下來,建立日志文件log file 。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時(shí)刻的正確狀態(tài)。轉(zhuǎn)儲(chǔ)還可以分為海量轉(zhuǎn)儲(chǔ)和增 量轉(zhuǎn)儲(chǔ)兩種方式。海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫。增量轉(zhuǎn)儲(chǔ)那么指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ) 后更新過的數(shù)據(jù)。 從恢復(fù)角度看, 使用海量轉(zhuǎn)儲(chǔ)得到的后備副本進(jìn)行恢復(fù)一般說來更簡單些。
9、但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,那么增量轉(zhuǎn)儲(chǔ)方式更實(shí)用更有效。16. 1 日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。 2 設(shè)立日志文件的目的是: 進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本 進(jìn)行介質(zhì)故障恢復(fù)。17. 把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。如果先寫了 數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,那么以后就無法恢復(fù)這個(gè)修改了。如果先寫 日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時(shí)只不過是多執(zhí)行一次UNDO操作,并不會(huì)影響數(shù)據(jù)庫的 正確性。所以一定要先寫日志文件,即首先把日
10、志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修 改。18. 答:事務(wù)故障的恢復(fù):事務(wù)故障的恢復(fù)是由DBMS自動(dòng)完成的,對用戶是透明的。DBM軌行恢復(fù)步驟是:1反向掃描文件日志即從最后向前掃描日志文件,查找該事務(wù)的更新操作。2對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值寫入數(shù)據(jù)庫。3繼續(xù)反向掃描日志文件,做同樣處理。4如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。答:系統(tǒng)故障的恢復(fù):系統(tǒng)故障可能會(huì)造成數(shù)據(jù)庫處于不一致狀態(tài):一是未完成事務(wù)對 數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫;二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來 得及寫入數(shù)據(jù)庫。因此恢復(fù)操作就是要撤銷UNDO故障發(fā)
11、生時(shí)未完成的事務(wù),重做REDO 已完成的事務(wù)。系統(tǒng)的恢復(fù)步驟是:1 正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊(duì)列REDO隊(duì)列和未完 成的事務(wù)隊(duì)列UNDO隊(duì)列。2對撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行 UND 0處理。進(jìn)行UNDO處理的方法是,反向掃描日 志文件,對每個(gè)UND0事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值 Before Image 寫入數(shù)據(jù)庫。3對重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行 REDO處理。進(jìn)行REDO處理的方法是:正向掃描日 志文件,對每個(gè)REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值A(chǔ)fter Image 寫入數(shù)據(jù)庫。*解析:在第1步中如何找出REDO隊(duì)列
12、和UNDO隊(duì)列?請大家思考一下。下面給 出一個(gè)算法:1 建立兩個(gè)事務(wù)隊(duì)列:? UNDO-LIST:需要執(zhí)行undo操作的事務(wù)集合;? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;兩個(gè)事務(wù)隊(duì)列初始均為空。2 從日志文件頭開始,正向掃描日志文件 ?如有新開始遇到Begin Transaction 的事務(wù)Ti ,把Ti暫時(shí)放入 UNDO-LIST隊(duì)列;?如有提交的事務(wù)遇到End Transaction Tj ,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列;直到日志文件結(jié)束。答:介質(zhì)故障的恢復(fù):介質(zhì)故障是最嚴(yán)重的一種故障?;謴?fù)方法是重裝數(shù)據(jù)庫,然后重 做已完成的事務(wù)。具體過程是:
13、1DBA裝入最新的數(shù)據(jù)庫后備副本離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲(chǔ)副本,使數(shù)據(jù)庫 恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。2DBA裝入轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的日志文件副本。3DBA啟動(dòng)系統(tǒng)恢復(fù)命令,由DBMS完成恢復(fù)功能,即重做已完成的事務(wù)。*解析1 我們假定采用的是靜態(tài)轉(zhuǎn)儲(chǔ),因此第1步裝入數(shù)據(jù)庫后備副本便可以了。2如果采用的是動(dòng)態(tài)轉(zhuǎn)儲(chǔ),第1步裝入數(shù)據(jù)庫后備副本還不夠,還需同時(shí)裝入轉(zhuǎn)儲(chǔ)開始 時(shí)刻的日志文件副本,經(jīng)過處理后才能得到正確的數(shù)據(jù)庫后備副本。3 第2步重做已完成的事務(wù)的算法是:a.正向掃描日志文件,找出故障發(fā)生前已提交的事務(wù)的標(biāo)識,將其記 入重做隊(duì)列b.再一次正向掃描日志文件,對重做隊(duì)列中的所有事務(wù)進(jìn)行重做處理。即將日
14、 志記錄中“更新后的值寫入數(shù)據(jù)庫。19. 檢查點(diǎn)記錄是一類新的日志紀(jì)錄。 它的內(nèi)容包括: 建立檢查點(diǎn)時(shí)刻所有正在執(zhí)行的 事務(wù)清單。 這些事務(wù)的最近一個(gè)日志記錄的地址。20. 利用日志技術(shù)進(jìn)行數(shù)據(jù)庫恢復(fù)時(shí),恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO,哪些事務(wù)需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個(gè)問題:一是搜索整 個(gè)日志將消耗大量的時(shí)間。二是很多需要REDO處理的事務(wù)實(shí)際上已經(jīng)將它們的更新操作結(jié) 果寫到數(shù)據(jù)庫中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費(fèi)了大量時(shí)間。檢查點(diǎn)技術(shù)就是 為了解決這些問題。21. 從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日
15、志 文件中找到最后一個(gè)檢查點(diǎn)記錄。 由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單 ACTIVE-LIST 。這里 建立兩個(gè)事務(wù)隊(duì)列 : ? UNDO-LIST: 需要執(zhí)行 undo 操作的事務(wù)集合; ? REDO-LIST: 需要 執(zhí)行redo操作的事務(wù)集合;把 ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為 空。 從檢查點(diǎn)開始正向掃描日志文件 ? 如有新開始的事務(wù) Ti ,把 Ti 暫時(shí)放入 UNDO-LIST隊(duì)列;?如有提交的事務(wù) Tj ,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列, 直到日志文件結(jié)束; 對 UNDO-LIST 中的每個(gè)事務(wù)執(zhí)行 UNDO 操作 , 對 REDO-LIST 中的每個(gè)事務(wù)執(zhí)行 REDO操 作。22. 數(shù)據(jù)庫鏡像即根據(jù) DBA 的要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公益崗位用工合作協(xié)議3篇
- 2025年度電商平臺(tái)會(huì)員消費(fèi)返利協(xié)議3篇
- 2025年度廢塑料瓶回收與環(huán)保瓶蓋生產(chǎn)合同樣板3篇
- 二零二五年度農(nóng)機(jī)智能化作業(yè)合同書3篇
- 二零二五年度電子信息產(chǎn)品開發(fā)合作協(xié)議書2篇
- 二零二五年度消防安全風(fēng)險(xiǎn)評估與整改方案協(xié)議3篇
- 農(nóng)村土地經(jīng)營權(quán)抵押貸款擔(dān)保合同
- 2025年度醫(yī)藥研發(fā)人員競業(yè)禁止勞動(dòng)合同書3篇
- 2025年度餐飲業(yè)食品安全責(zé)任書3篇
- 二零二五年度歷史文化名城拆遷房產(chǎn)分割與文物保護(hù)合同3篇
- 基于老舊小區(qū)加裝電梯特殊安全及風(fēng)險(xiǎn)控制的研究
- 甘肅省蘭州市(2024年-2025年小學(xué)三年級語文)人教版綜合練習(xí)(上學(xué)期)試卷(含答案)
- 2024年人教版小學(xué)四年級信息技術(shù)(上冊)期末試卷及答案
- 譯林版小學(xué)英語二年級上全冊教案
- DL∕T 821-2017 金屬熔化焊對接接頭射線檢測技術(shù)和質(zhì)量分級
- DL∕ T 1195-2012 火電廠高壓變頻器運(yùn)行與維護(hù)規(guī)范
- 小學(xué)五年級英語語法練習(xí)
- NB-T32004-2018光伏并網(wǎng)逆變器技術(shù)規(guī)范
- 領(lǐng)導(dǎo)與班子廉潔談話記錄(4篇)
- 衡陽市耒陽市2022-2023學(xué)年七年級上學(xué)期期末語文試題【帶答案】
- 文庫發(fā)布:strata手冊
評論
0/150
提交評論