資源描述:
《第10章 數(shù)據庫恢復技術》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第10章數(shù)據庫恢復技術1.試述事務的概念及事務的4個特性。答:事務是用戶定義的一個數(shù)據庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。事務具有4個特性:原子性(Atomicity)、一致性(consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這4個特性也簡稱為ACID特性。原子性:事務是數(shù)據庫的邏輯工作單位,事務中包括的諸操作要么都做,要么都不做。一致性:事務執(zhí)行的結果必須是使數(shù)據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。隔離性:一個事務的執(zhí)行不能
2、被其他事務干擾。即一個事務內部的操作及使用的數(shù)據對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性(Perfnanence),指一個事務一旦提交,它對數(shù)據庫中數(shù)據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結果有任何影響。2.為什么事務非正常結束時會影響數(shù)據庫數(shù)據的正確性,請列舉一例說明之。答:事務執(zhí)行的結果必須是使數(shù)據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。如果數(shù)據庫系統(tǒng)運行中發(fā)生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數(shù)據庫所做的修改有
3、一部分已寫入物理數(shù)據庫,這時數(shù)據庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q的某種零件從倉庫1移到倉庫2存放。則可以定義一個事務T,T包括兩個操作;Ql=Ql一Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則數(shù)據庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。3.數(shù)據庫中為什么要有恢復子系統(tǒng)?它的功能是什么?答:因為計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數(shù)據庫中數(shù)據的正確性
4、,重則破壞數(shù)據庫,使數(shù)據庫中全部或部分數(shù)據丟失,因此必須要有恢復子系統(tǒng)?;謴妥酉到y(tǒng)的功能是:把數(shù)據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。4.數(shù)據庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執(zhí)行?哪些故障破壞數(shù)據庫數(shù)據?答:數(shù)據庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:(1)事務內部的故障;(2)系統(tǒng)故障;(3)介質故障;(4)計算機病毒。事務故障、系統(tǒng)故障和介質故障影響事務的正常執(zhí)行;介質故障和計算機病毒破壞數(shù)據庫數(shù)據。5.數(shù)據庫恢復的基本技術有哪些?
5、答:數(shù)據轉儲和登錄日志文件是數(shù)據庫恢復的基本技術。當系統(tǒng)運行過程中發(fā)生故障,利用轉儲的數(shù)據庫后備副本和日志文件就可以將數(shù)據庫恢復到故障前的某個一致性狀態(tài)。6.數(shù)據庫轉儲的意義是什么?試比較各種數(shù)據轉儲方法。答:數(shù)據轉儲是數(shù)據庫恢復中采用的基本技術。所謂轉儲即DBA定期地將數(shù)據庫復制到磁帶或另一個磁盤上保存起來的過程。當數(shù)據庫遭到破壞后可以將后備副本重新裝入,將數(shù)據庫恢復到轉儲時的狀態(tài)。靜態(tài)轉儲:在系統(tǒng)中無運行事務時進行的轉儲操作,如上圖所示。靜態(tài)轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣
6、,新的事務必須等待轉儲結束才能執(zhí)行。顯然,這會降低數(shù)據庫的可用性。動態(tài)轉儲:指轉儲期間允許對數(shù)據庫進行存取或修改。動態(tài)轉儲可克服靜態(tài)轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時后援副本上的數(shù)據并不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數(shù)據,使得后援副本上的數(shù)據不是數(shù)據庫的一致版本。為此,必須把轉儲期間各事務對數(shù)據庫的修改活動登記下來,建立日志文件(109file)。這樣,后援副本加上日志文件就能得到數(shù)據庫某一時刻的正確狀態(tài)。轉儲還可以分為海量轉
7、儲和增量轉儲兩種方式。海量轉儲是指每次轉儲全部數(shù)據庫。增量轉儲則指每次只轉儲上一次轉儲后更新過的數(shù)據。從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來更簡單些。但如果數(shù)據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。7.什么是日志文件?為什么要設立日志文件?答:(1)日志文件是用來記錄事務對數(shù)據庫的更新操作的文件。(2)設立日志文件的目的是:進行事務故障恢復;進行系統(tǒng)故障恢復;協(xié)助后備副本進行介質故障恢復。8.登記日志文件時為什么必須先寫日志文件,后寫數(shù)據庫?答:把對數(shù)據的修改寫到
8、數(shù)據庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。如果先寫了數(shù)據庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改了。如果先寫日志,但沒有修改數(shù)據庫,在恢復時只不過是多執(zhí)行一次UNDO操作,并不會影響數(shù)據庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據庫的修改。9.針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統(tǒng)故障的恢復?介