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

下載本文檔

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

文檔簡介

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

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

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

故障分類

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

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

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

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

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

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

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

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

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

動態(tài)轉(zhuǎn)儲是指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改,即轉(zhuǎn)儲和用戶事務(wù)可以并發(fā)執(zhí)行。動態(tài)轉(zhuǎn)儲可克服靜態(tài)轉(zhuǎn)儲的缺點,它不用等待正在運行的用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運行。但是,轉(zhuǎn)儲結(jié)束時后援副本上的數(shù)據(jù)并不能保證正確有效。例如,在轉(zhuǎn)儲期間的某個事務(wù)將A改為100。轉(zhuǎn)儲結(jié)束后,后備副本上的A已經(jīng)是過時數(shù)據(jù)了。為此,必須把轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件(LogFile)。2023/2/1

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

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

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

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

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

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

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

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

2)

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

恢復(fù)策略

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

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

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論