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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 所謂數據恢復技術,簡單的說就是通過各種手段把丟失和遭到破壞的數據還原為正常數據。 數據庫恢復是一種通過技術手段,將保存在數據庫中丟失的電子數據進行搶救和恢復的技術。 數據庫恢復即系統(tǒng)失效后的數據庫恢復,配合定時備份數據庫,使數據不丟失。 數據庫的備份主要有如下策略: 完全備份完全備份 完全備份就是通過海量轉儲形成的備份。 其最大優(yōu)點是恢復數據庫的操作簡便,它只需要將最近一次的備份恢復。完全備份所占的存儲空間很大且備份的時間較長,只能在一個較長的時間間隔上進行完全備份。 其缺點是當根據最近的完全備份進行數據恢復時,完全備份之后對數據所作的任何修改都將無法恢復。當數據庫較小、數據不是很重要或數據

2、操作頻率較低時,可采用完全備份的策略進行數據備份和恢復。完全備份加事務日志備份完全備份加事務日志備份 事務日志備份必須與數據庫的完全備份聯合使用,才能實現數據備份和恢復功能。將完全備份和事務日志備份聯用進行數據備份和恢復時,備份步驟是: (1)定期進行完全備份,例如一天一次或兩天一次。 (2)更頻繁地進行事務日志備份,如一小時一次或兩小時一次等。 同時使用同時使用3種備份種備份 同時使用同時使用3種備份恢復數據時,要求數據備份操作種備份恢復數據時,要求數據備份操作按以下順序進行:按以下順序進行: (1)定期執(zhí)行完全備份,例如一天一次或兩天一次定期執(zhí)行完全備份,例如一天一次或兩天一次等。等。 (

3、2)進行增量備份,如進行增量備份,如4小時一次或六小時一次等。小時一次或六小時一次等。 (3)進行事務日志備份,如一小時一次或兩小時一進行事務日志備份,如一小時一次或兩小時一次等。次等。 同時使用同時使用3種備份種備份 同時使用同時使用3種備份恢復數據時,要求數據備份操作種備份恢復數據時,要求數據備份操作按以下順序進行:按以下順序進行: (1)定期執(zhí)行完全備份,例如一天一次或兩天一次定期執(zhí)行完全備份,例如一天一次或兩天一次等。等。 (2)進行增量備份,如進行增量備份,如4小時一次或六小時一次等。小時一次或六小時一次等。 (3)進行事務日志備份,如一小時一次或兩小時一進行事務日志備份,如一小時一

4、次或兩小時一次等。次等。 在數據庫中恢復大致有在數據庫中恢復大致有3種方法,即應急種方法,即應急(crash)恢復、版本()恢復、版本(version)恢復和)恢復和前滾(前滾(rool forward)恢復。)恢復。 1、應急恢復、應急恢復 應急恢復用于防止數據庫處于不一致或不可應急恢復用于防止數據庫處于不一致或不可用狀態(tài)。用狀態(tài)。 需要回滾未完成的事務,并完成當發(fā)生崩潰時仍在內存中的已提交事務。 2、版本恢復、版本恢復 版本恢復指的是使用備份操作期間創(chuàng)建的映版本恢復指的是使用備份操作期間創(chuàng)建的映象來復原數據庫的先前版本。這種恢復是通象來復原數據庫的先前版本。這種恢復是通過使用一個以前建立的

5、數據庫備份恢復出一過使用一個以前建立的數據庫備份恢復出一個完整的數據庫。一個數據庫的備份允許你個完整的數據庫。一個數據庫的備份允許你把數據庫恢復至和這個數據庫在備份時完全把數據庫恢復至和這個數據庫在備份時完全一樣的狀態(tài)。而從備份建立后到日志文件中一樣的狀態(tài)。而從備份建立后到日志文件中最后記錄的所有工作事務單位將全部丟失。最后記錄的所有工作事務單位將全部丟失。 3、前滾恢復、前滾恢復 這種恢復技術是版本恢復的一個擴展,使用這種恢復技術是版本恢復的一個擴展,使用完整的數據庫備份和日志相結合,可以使一完整的數據庫備份和日志相結合,可以使一個數據庫或者被選擇的表空間恢復到某個特個數據庫或者被選擇的表空

6、間恢復到某個特定時間點。如果從備份時刻起到發(fā)生故障時定時間點。如果從備份時刻起到發(fā)生故障時的所有日志文件都可以獲得的話,則可以恢的所有日志文件都可以獲得的話,則可以恢復到日志上涵蓋到的任意時間點。前滾恢復復到日志上涵蓋到的任意時間點。前滾恢復需要在配置中被明確激活才能生效。需要在配置中被明確激活才能生效。 事務是一系列的數據庫操作,是數據庫應用程序的基本邏輯單元。 事務處理技術主要包括數據庫恢復技術和并發(fā)控制技術。 所謂事務是用戶定義的一個操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。 事務的四個特性:簡稱事務的ACID特性。 (1)原子性(Atomicity):事務是一個獨

7、立的邏輯單位,事務中包括的諸操作要么全做,要么全不做。 (2)一致性(Consistency):事務的執(zhí)行結果必須是使數據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。 事務的四個特性:簡稱事務的ACID特性。 (3)隔離性(Isolation):一個事務的執(zhí)行不能被其他事務干擾。即并發(fā)執(zhí)行的各個事務之間不能互相干擾。 (4)持續(xù)性(Durability):一個事務一旦提交,它對數據庫中數據的改變使永久性的。 事務是恢復和并發(fā)控制的基本單位。保證事務ACID特性是事務處理的重要任務。 事務ACID特性可能遭到破壞的因素有: 多個事務并行運行時,不同事務的操作交叉執(zhí)行。 事務在運行過程中被強行停止。

8、(1)事務內部的故障 事務內部故障:某個事務在運行過程中由于種種原因未運行至正常終止點就夭折。事務內部故障的常見原因有: 輸入數據有誤運算:例如,事務內部的非法輸入、溢出、超出資源限制等。 系統(tǒng)錯誤,系統(tǒng)進入一種不良狀態(tài)(如死鎖),使得事務無法繼續(xù)正常執(zhí)行, (2)系統(tǒng)故障 系統(tǒng)故障是指造成系統(tǒng)停止運轉的任何事件,使得系統(tǒng)要重新啟動。例如,特定類型的硬件錯誤(CPU故障)、操作系統(tǒng)故障、DBMS代碼錯誤、突然停電等等。這類故障影響正在運行的所有事務,但不破壞數據庫。這時主存內容,尤其是數據庫緩沖區(qū)(在內存)中的內容都被丟失,所有運行事務都非正常終止。 為保證數據一致性,恢復子系統(tǒng)必須在系統(tǒng)重新

9、啟動時讓所有非正常終止的事務回滾,強行撤消(UNDO)所有未完成事務。重做(Redo)所有已提交的事務,以將數據庫真正恢復到一致狀態(tài)。 (3)介質故障 系統(tǒng)故障常稱為軟故障(Soft Crash),介質故障稱為硬故障(Hard Crash)。硬故障指外存故障,如磁盤損壞、磁頭碰撞,瞬時強磁場干擾等。這類故障將破壞數據庫或部分數據庫,并影響正在存取這部分數據的所有事務。這類故障比前兩類故障發(fā)生的可能性小得多,但破壞性最大。 介質故障的恢復:裝入數據庫發(fā)生介質故障前某個時刻的數據副本,重做自此時始的所有成功事務,將這些事務已提交的結果重新記入數據庫。 (4)計算機病毒 計算機病毒是具有破壞性、可以

10、自我復制的計算機程序。計算機病毒已成為計算機系統(tǒng)的主要威脅,自然也是數據庫系統(tǒng)的主要威脅。因此數據庫一旦被破壞仍要用恢復技術把數據庫加以恢復。首先要清除病毒和阻止惡意攻擊,采用與介質故障恢復相同的方法?;謴偷幕驹恚喝哂唷BMS恢復機制涉及的關鍵問題:(1)如何建立冗余數據。通過數據轉儲(backup)和登錄日志文件(logging)來實現。(2)如何利用這些冗余數據進行故障恢復。 所謂轉儲即DBA定期地將整個數據庫復制到磁帶或另一個磁盤上保存起來的過程。這些備用的數據文本稱為后備副本或后援副本。轉儲可分為靜態(tài)轉儲和動態(tài)轉儲。靜態(tài)轉儲是在系統(tǒng)中無運行事務時進行的轉儲操作。 動態(tài)轉儲是指轉儲

11、期間允許對數據庫進行存取或修改。 轉儲還可以分為海量轉儲和增量轉儲兩種方式。海量轉儲是指每次轉儲全部數據庫。增量轉儲則指每次只轉儲上一次轉儲后更新過的數據。 從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來會更方便些。但如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。日志文件(log)是用來記錄事務對數據庫的更新操作的文件。日志文件的格式有兩種:(1)以記錄為單位的日志文件。(2)以數據塊為單位的日志文件。日志文件內容包括:各個事務的開始標記(BEGIN TRANSACTION)各個事務的結束標記(COMMIT或ROLLBACK)各個事務的所有更新操作與事務有關的內部更

12、新操作每條日志記錄的內容包括:事務標識、操作類型(插入、刪除或修改)、操作對象(記錄ID、Block NO)、更新前數據的舊值(對插入操作而言,此項為空值)、更新后數據的新值(對刪除操作而言,此項為空值)。日志文件的用途:進行事務故障恢復進行系統(tǒng)故障恢復協(xié)助后備副本進行介質故障恢復日志文件在數據庫恢復中起著非常重要的作用??梢杂脕磉M行事務故障恢復和系統(tǒng)故障恢復,并協(xié)助后備副本進行介質故障恢復。具體地講:事務故障恢復和系統(tǒng)故障恢復必須用日志文件。在動態(tài)轉儲方式中必須建立日志文件,后援副本和日志文件綜合起來才能有效地恢復數據庫。為保證數據庫是可恢復的,登記日志文件時必須遵循兩條原則登記的次序嚴格按

13、并行事務執(zhí)行的時間次序必須先寫日志文件,后寫數據庫。寫日志文件操作:把表示這個修改的日志記錄寫到日志文件寫數據庫操作:把對數據的修改寫到數據庫中為什么要先寫日志文件:寫數據庫和寫日志文件是兩個不同的操作,在這兩個操作之間可能發(fā)生故障。如果先寫了數據庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復這個修改了。如果先寫日志,但沒有修改數據庫,按日志文件恢復時只不過是多執(zhí)行一次不必要的UNDO操作,并不會影響數據庫的正確性。事務故障:事務在運行至正常終止點前被中止。恢復方法:由恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務已對數據庫進行的修改。事務故障的恢復由系統(tǒng)自動完成,不需要用戶干預。

14、1. 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。2. 對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”(Before Image, BI)寫入數據庫。插入操作:“更新前的值”為空,則相當于做刪除操作。刪除操作:“更新后的值”為空,則相當于做插入操作。修改操作:則用 BI 代替 AI (After Image)。3. 繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。4. 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。系統(tǒng)故障造成數據庫不一致狀態(tài)的原因:一些未完成事務對數據庫的更新已寫入數據庫一些已提交事務對數據庫的更新還留在緩沖區(qū)

15、沒來得及寫入數據庫恢復方法:1. Undo 故障發(fā)生時未完成的事務。2. Redo 已完成的事務。系統(tǒng)故障造成數據庫不一致狀態(tài)的原因:一些未完成事務對數據庫的更新已寫入數據庫一些已提交事務對數據庫的更新還留在緩沖區(qū)沒來得及寫入數據庫恢復方法:1. Undo 故障發(fā)生時未完成的事務。2. Redo 已完成的事務。介質故障的恢復需要DBA介入。DBA的工作:重裝最近轉儲的數據庫副本和有關的各日志文件副本。執(zhí)行系統(tǒng)提供的恢復命令,具體的恢復操作仍由DBMS完成。當系統(tǒng)發(fā)生故障時,需全面搜索檢查日志文件,以決定哪些事務需要redo操作,哪些事務需要undo操作。 為降低開銷,我們引入檢查點機制。檢查點

16、記錄的內容:(1)建立檢查點時刻所有正在執(zhí)行的事務清單。(2)這些事務最近一個日志記錄的地址。重新開始文件的內容:記錄各個檢查點記錄在日志文件中的地址。1、將當前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上。2、在日志文件中寫入一個檢查點記錄。3、將當前數據緩沖區(qū)的所有數據記錄寫入磁盤的數據庫中。4、把檢查點記錄在日志文件中的地址寫入一個重新開始文件。恢復子系統(tǒng)可定期或不定期地建立檢查點保存數據庫狀態(tài)。定期:按照預定的一個時間間隔。不定期:按照某種規(guī)則,比如日志文件已寫滿一半建立一個檢查點。利用檢查點方法可以改善恢復效率。當事務T在一個檢查點之前提交,T對數據庫所做的修改已寫入數據庫。在進行恢復處理時,沒有必要對事務T

溫馨提示

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

最新文檔

評論

0/150

提交評論