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

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)恢復(fù)技術(shù)問題的提出:數(shù)據(jù)庫(kù)系統(tǒng)出現(xiàn)故障后,如何把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到正確狀態(tài)?恢復(fù)技術(shù):數(shù)據(jù)庫(kù)備份+日志文件2023/2/1

恢復(fù)機(jī)制(recoveryscheme)是數(shù)據(jù)庫(kù)系統(tǒng)必不可少的組成部分,它負(fù)責(zé)將數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生前的某個(gè)一致的狀態(tài)?;謴?fù)機(jī)制還必須提供高可用性(highavailability),也就是說,它必須將發(fā)生故障后數(shù)據(jù)庫(kù)不能使用的時(shí)間減少到最小。數(shù)據(jù)庫(kù)系統(tǒng)所采用的恢復(fù)技術(shù)是否行之有效,不僅對(duì)系統(tǒng)的可靠程度起著決定性作用,而且對(duì)系統(tǒng)的運(yùn)行效率也有很大影響,是衡量系統(tǒng)性能優(yōu)劣的重要指標(biāo)。

實(shí)現(xiàn)可恢復(fù)性的基本原理是重復(fù)存儲(chǔ)數(shù)據(jù)即“數(shù)據(jù)冗余”(DataRedundancy)。2023/2/1

故障分類

1、事務(wù)故障有兩種錯(cuò)誤可能造成事務(wù)執(zhí)行失?。海?)邏輯錯(cuò)誤。事務(wù)由于某些內(nèi)部條件而無法繼續(xù)正常執(zhí)行;(2)系統(tǒng)錯(cuò)誤。系統(tǒng)進(jìn)入一種不良狀態(tài)(如死鎖),結(jié)果事務(wù)無法繼續(xù)正常執(zhí)行。事務(wù)內(nèi)部的故障引起數(shù)據(jù)庫(kù)故障,數(shù)據(jù)庫(kù)可能處于不正確的狀態(tài)。這種情況有的可以通過事務(wù)程序本身發(fā)現(xiàn),而有的是非預(yù)期的,不能由事務(wù)程序處理。2023/2/12、系統(tǒng)故障

通常稱為軟故障,指造成系統(tǒng)突然停止運(yùn)轉(zhuǎn)的事件,包括硬件故障、數(shù)據(jù)庫(kù)軟件或操作系統(tǒng)漏洞,導(dǎo)致易失性存儲(chǔ)器內(nèi)容的丟失,并使得事務(wù)處理停止,而非易失性存儲(chǔ)器完好無損。這類故障發(fā)生時(shí),可能出現(xiàn)以下兩種情況,破壞數(shù)據(jù)庫(kù)的一致性:(1)主存內(nèi)容,尤其是數(shù)據(jù)庫(kù)緩沖區(qū)(內(nèi)存)中的內(nèi)容都被丟失,而部分尚未完成的事務(wù)結(jié)果可能已送入物理數(shù)據(jù)庫(kù),從而造成數(shù)據(jù)庫(kù)可能處于不正確的狀態(tài)。(2)有些已完成的事務(wù)可能有一部分甚至全部留在緩沖區(qū),尚未寫回到磁盤上的物理數(shù)據(jù)庫(kù)中,系統(tǒng)故障使得這些事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改部分或全部丟失,而使數(shù)據(jù)庫(kù)處于不一致狀態(tài)。2023/2/13、介質(zhì)故障

通常稱為硬故障,主要指外存故障,如磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁場(chǎng)干擾等。這類故障將破壞存儲(chǔ)在介質(zhì)上的數(shù)據(jù)庫(kù)或部分?jǐn)?shù)據(jù)庫(kù),并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)。這類故障比前兩類故障發(fā)生的可能性小得多,但破壞性最大。4、計(jì)算機(jī)病毒

計(jì)算機(jī)病毒目前已成為計(jì)算機(jī)系統(tǒng)的主要威脅,自然也是數(shù)據(jù)庫(kù)系統(tǒng)的主要威脅,是一種人為的故障或破壞,是一種特殊的惡性計(jì)算機(jī)程序,能迅速繁殖和傳播,造成對(duì)計(jì)算機(jī)系統(tǒng)包括數(shù)據(jù)庫(kù)的危害。2023/2/1

以上各類故障對(duì)數(shù)據(jù)庫(kù)的影響有兩種可能性:一是數(shù)據(jù)庫(kù)本身被破壞;二是數(shù)據(jù)庫(kù)沒有被破壞,但數(shù)據(jù)可能不正確,這是由于事務(wù)的運(yùn)行被非正常中止造成的。要確定系統(tǒng)如何從故障中恢復(fù),我們首先需要確定用于存儲(chǔ)數(shù)據(jù)的設(shè)備的故障狀態(tài)。其次,我們必須考慮這些故障狀態(tài)對(duì)數(shù)據(jù)庫(kù)內(nèi)容有什么影響。然后我們可以設(shè)計(jì)在數(shù)據(jù)庫(kù)故障發(fā)生后仍保證數(shù)據(jù)庫(kù)一致性以及事務(wù)原子性的算法,即恢復(fù)算法?;謴?fù)的基本原理很簡(jiǎn)單??梢杂靡粋€(gè)詞來概括:冗余。換句話說,就是數(shù)據(jù)庫(kù)中任何一部分被破壞的或不正確的數(shù)據(jù)可以根據(jù)存儲(chǔ)在系統(tǒng)別處的冗余數(shù)據(jù)來重建。2023/2/1

恢復(fù)的實(shí)現(xiàn)技術(shù)

恢復(fù)機(jī)制涉及的兩個(gè)關(guān)鍵問題是:(1)如何建立冗余數(shù)據(jù);(2)如何利用這些冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫(kù)恢復(fù)。建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件。通常在一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中,這兩種方法是一起使用的。2023/2/11、數(shù)據(jù)轉(zhuǎn)儲(chǔ)數(shù)據(jù)轉(zhuǎn)儲(chǔ)就是DBA定期地將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。當(dāng)數(shù)據(jù)庫(kù)遭到破壞后可以將后備副本重新裝入,但重裝后備副本只能將數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài),要想恢復(fù)到故障發(fā)生時(shí)的狀態(tài)。必須重新運(yùn)行自轉(zhuǎn)儲(chǔ)以后的所有更新事務(wù)。

轉(zhuǎn)儲(chǔ)是十分耗費(fèi)時(shí)間和資源的,不能頻繁進(jìn)行。DBA應(yīng)該根據(jù)數(shù)據(jù)庫(kù)使用情況確定一個(gè)適當(dāng)?shù)霓D(zhuǎn)儲(chǔ)周期。2023/2/1數(shù)據(jù)轉(zhuǎn)儲(chǔ)與恢復(fù)2023/2/1

轉(zhuǎn)儲(chǔ)按轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。靜態(tài)轉(zhuǎn)儲(chǔ)是在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作,即轉(zhuǎn)儲(chǔ)操作開始的時(shí)刻數(shù)據(jù)庫(kù)處于一致性狀態(tài),而轉(zhuǎn)儲(chǔ)期間不允許對(duì)數(shù)據(jù)庫(kù)的任何存取、修改活動(dòng)。顯然,靜態(tài)轉(zhuǎn)儲(chǔ)得到的一定是一個(gè)數(shù)據(jù)一致性的副本。靜態(tài)轉(zhuǎn)儲(chǔ)簡(jiǎn)單,但轉(zhuǎn)儲(chǔ)必須等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)結(jié)束才能執(zhí)行。這樣顯然會(huì)降低數(shù)據(jù)庫(kù)的可用性。2023/2/1

動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取或修改,即轉(zhuǎn)儲(chǔ)和用戶事務(wù)可以并發(fā)執(zhí)行。動(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ù)并不能保證正確有效。例如,在轉(zhuǎn)儲(chǔ)期間的某個(gè)事務(wù)將A改為100。轉(zhuǎn)儲(chǔ)結(jié)束后,后備副本上的A已經(jīng)是過時(shí)數(shù)據(jù)了。為此,必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng)登記下來,建立日志文件(LogFile)。2023/2/1

轉(zhuǎn)儲(chǔ)按轉(zhuǎn)儲(chǔ)方式分為海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)。海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)。增量轉(zhuǎn)儲(chǔ)則指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。從恢復(fù)的角度看,用海量轉(zhuǎn)儲(chǔ)得到的后備副本進(jìn)行恢復(fù)會(huì)更方便一些。但如果數(shù)據(jù)庫(kù)很大,事務(wù)處理又非常頻繁,則增量轉(zhuǎn)儲(chǔ)方式更實(shí)用、有效。數(shù)據(jù)轉(zhuǎn)儲(chǔ)有兩種方式,分別可以在兩種方式下進(jìn)行,因此數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法可以分為四類:動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)、動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)、靜態(tài)海量轉(zhuǎn)儲(chǔ)和靜動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)。2023/2/12、日志文件日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件,主要有兩種格式:以記錄為單位的日志文件和以數(shù)據(jù)塊為單位的日志文件。以記錄為單位的日志文件包括:各個(gè)事務(wù)的開始(StartTransaction)標(biāo)記、各個(gè)事務(wù)的結(jié)束(Commit或Rollback)標(biāo)記、各個(gè)事務(wù)的所有更新操作。每個(gè)事務(wù)的開始標(biāo)記、結(jié)束標(biāo)記和每個(gè)更新操作構(gòu)成一個(gè)日志記錄(LogRecord)。2023/2/1

以數(shù)據(jù)塊為單位的日志文件包括:事務(wù)標(biāo)識(shí)(標(biāo)明是哪個(gè)事務(wù))、操作的類型(插入、刪除或修改)、操作對(duì)象(記錄內(nèi)部標(biāo)識(shí))、更新前數(shù)據(jù)的舊值(對(duì)插入操作而言此項(xiàng)為空值)、更新后數(shù)據(jù)的新值(對(duì)刪除操作而言此項(xiàng)為空值)。對(duì)以數(shù)據(jù)塊為單位的日志文件,日志記錄的內(nèi)容包括事務(wù)標(biāo)識(shí)和被更新的數(shù)據(jù)塊。由于將更新前的整個(gè)塊和更新后的整個(gè)塊都放入日志文件中,因而操作的類型和操作對(duì)象等信息就不必放入日志記錄中。2023/2/1

日志文件在數(shù)據(jù)庫(kù)恢復(fù)中起著非常重要的作用,可以用來進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。具體的作用如下:

①事務(wù)故障恢復(fù)和介質(zhì)故障恢復(fù)必須用日志文件。

②在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件綜合起來才能有效地恢復(fù)數(shù)據(jù)庫(kù)。

③在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件。當(dāng)數(shù)據(jù)庫(kù)毀壞后可重新裝入后備副本把數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的正確狀態(tài),然后利用日志文件,把已完成的事務(wù)進(jìn)行重做處理,對(duì)故障發(fā)生時(shí)尚未完成的事務(wù)進(jìn)行撤消處理。2023/2/1利用日志文件恢復(fù)數(shù)據(jù)庫(kù)2023/2/1

為保證數(shù)據(jù)庫(kù)是可恢復(fù)的,登記日志文件時(shí)必須遵守兩條原則:

1)登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序;

2)

必須先寫日志文件后寫數(shù)據(jù)庫(kù)。2023/2/1

恢復(fù)策略

1、事務(wù)故障的恢復(fù)事務(wù)故障是指事務(wù)在運(yùn)行至正常結(jié)束點(diǎn)前被中止。事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶透明。

系統(tǒng)的恢復(fù)步驟是:(1)反向掃描日志文件,查找該事務(wù)的更新操作。(2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作,(3)繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理,直至讀到該事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成。2023/2/12、系統(tǒng)故障的恢復(fù)系統(tǒng)故障造成數(shù)據(jù)庫(kù)不一致狀態(tài)的原因有兩個(gè):一是未完成事務(wù)的更新可能已寫入數(shù)據(jù)庫(kù),二是已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫(kù)。因此恢復(fù)操作就是要撤消故障發(fā)生時(shí)未完成的事務(wù),重做已完成的事務(wù)。

系統(tǒng)故障的恢復(fù)是由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成的,不需要用戶干預(yù)。2023/2/1

系統(tǒng)的恢復(fù)步驟是:(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù),將其事務(wù)標(biāo)識(shí)記入重做隊(duì)列,同時(shí)找出故障發(fā)生時(shí)尚未完成的事務(wù),將其事務(wù)標(biāo)識(shí)記入撤消隊(duì)列。(2)對(duì)撤消隊(duì)列中的各個(gè)事務(wù)進(jìn)行撤消(UNDO)處理。(3)對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行重做(REDO)處理。2023/2/13、介質(zhì)故障的恢復(fù)發(fā)生介質(zhì)故障后,磁盤上的物理數(shù)據(jù)和日志文件被破壞,這是最嚴(yán)重的一種故障。恢復(fù)方法是重裝數(shù)據(jù)庫(kù),然后重做已完成的事務(wù)。2023/2/1系統(tǒng)的恢復(fù)步驟:(1)裝入最新的數(shù)據(jù)庫(kù)后備副本,使數(shù)據(jù)庫(kù)恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。(2)裝入轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的日志文件副本,重做已完成的事務(wù)。介質(zhì)故障的恢復(fù)需要DBA介入。DBA只需重裝最近轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫(kù)副本和有關(guān)的各日志文件副本,然后執(zhí)行系統(tǒng)提供的恢復(fù)命令即可,具體的恢復(fù)操作仍由DBMS完成。2023/2/14、具有檢查點(diǎn)的恢復(fù)技術(shù)

問題的提出:在執(zhí)行恢復(fù)操作時(shí),需要掃描整個(gè)日志文件,有可能重復(fù)執(zhí)行某些操作。檢查點(diǎn)的用途是在磁盤上建立事務(wù)處理一致性的標(biāo)志。技術(shù)原理:在日志文件中增加一類新記錄,檢查點(diǎn);增加一個(gè)重新開始文件;恢復(fù)子系統(tǒng)動(dòng)態(tài)維護(hù)日志。2023/2/1檢查點(diǎn)的有關(guān)文件2023/2/1具有檢查點(diǎn)的數(shù)據(jù)庫(kù)恢復(fù)策略2023/2/15、數(shù)據(jù)庫(kù)鏡像

隨著磁盤容量越來越大,價(jià)格越來越便宜,為避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫(kù)的可用性,許多DBMS提供了數(shù)據(jù)庫(kù)鏡像(Mirror)功能用于數(shù)據(jù)庫(kù)恢復(fù)。其方法是DBMS根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上,并自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性,即每當(dāng)主數(shù)據(jù)庫(kù)更新時(shí),DBMS自動(dòng)把更新后的數(shù)據(jù)恢復(fù)過去。一旦出現(xiàn)介質(zhì)故障,可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù),不需要關(guān)閉系統(tǒng)或重裝數(shù)據(jù)庫(kù)副本。2023/2/12023/2/16、遠(yuǎn)程備份系統(tǒng)

現(xiàn)代數(shù)據(jù)庫(kù)應(yīng)用要求事務(wù)處理系統(tǒng)提高可用性,傳統(tǒng)的事務(wù)處理系統(tǒng)是集中式或客戶/服務(wù)器模式的系統(tǒng)。這樣的系統(tǒng)易遭受火災(zāi)、洪水或地震等自然災(zāi)害的毀壞。故要求數(shù)據(jù)庫(kù)系統(tǒng)有抗破壞力,使之無論在系統(tǒng)故障還是自然災(zāi)害下都能快速恢復(fù)運(yùn)行。獲得高可用性的方法之一是遠(yuǎn)程備份系統(tǒng),即在一個(gè)主站點(diǎn)(PrimarySite)執(zhí)行事務(wù)處理,使用一個(gè)遠(yuǎn)程備份(RemoteBackup)站點(diǎn)以應(yīng)付突然事件。一開始所有站點(diǎn)的數(shù)據(jù)都被復(fù)制到遠(yuǎn)程備份站點(diǎn)。隨著更新在主站點(diǎn)上執(zhí)行,遠(yuǎn)程站點(diǎn)必須保持與主站點(diǎn)同步。2023/2/1

同步方法是:通過發(fā)送所有主站點(diǎn)的日志記錄到遠(yuǎn)程備份站點(diǎn),遠(yuǎn)程備份站

溫馨提示

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

評(píng)論

0/150

提交評(píng)論