數(shù)據(jù)庫系統(tǒng)概論_007數(shù)據(jù)庫恢復技術_第1頁
數(shù)據(jù)庫系統(tǒng)概論_007數(shù)據(jù)庫恢復技術_第2頁
數(shù)據(jù)庫系統(tǒng)概論_007數(shù)據(jù)庫恢復技術_第3頁
數(shù)據(jù)庫系統(tǒng)概論_007數(shù)據(jù)庫恢復技術_第4頁
數(shù)據(jù)庫系統(tǒng)概論_007數(shù)據(jù)庫恢復技術_第5頁
已閱讀5頁,還剩106頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術第三篇第三篇 系統(tǒng)篇系統(tǒng)篇 n數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)是由DBMS統(tǒng)一管理和控制的,為了適應數(shù)據(jù)共享的環(huán)境,DBMS必須提供數(shù)據(jù)保護能力,以保證數(shù)據(jù)庫中數(shù)據(jù)的安全可靠和正確有效。n數(shù)據(jù)保護n安全性n完整性n并發(fā)控制n數(shù)據(jù)庫恢復第三篇第三篇 系統(tǒng)篇系統(tǒng)篇 第七章 數(shù)據(jù)庫恢復技術第八章 并發(fā)控制第九章 數(shù)據(jù)庫安全性第十章 數(shù)據(jù)庫完整性第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢

2、復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.1 事務的基本概念事務的基本概念一、什么是事務二、如何定義事務三、事務的特性一、什么是事務一、什么是事務n事務(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位n事務和程序是兩個概念n在關系數(shù)據(jù)庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序n一個應用程序通常包含多個事務n事務是恢復和并發(fā)控制的基本單位二、如何定義事務二、如何定義事務n顯式定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQ

3、L 語句1 SQL 語句1 SQL 語句2 SQL 語句2 。 。 COMMIT ROLLBACKn隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務事務結束事務結束COMMIT事務正常結束 提交事務的所有操作(讀+更新)事務中所有對數(shù)據(jù)庫的更新永久生效ROLLBACK事務異常終止n事務運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務的所有更新操作n事務滾回到開始時的狀態(tài)三、事務的特性三、事務的特性(ACID特性特性)事務的ACID特性:n原子性(Atomicity)n一致性(Consistency)n隔離性(Isolation)n持續(xù)性(Durability )1. 原子性原子性

4、n事務是數(shù)據(jù)庫的邏輯工作單位n事務中包括的諸操作要么都做,要么都不做2. 一致性一致性事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個 一致性狀態(tài)變到另一個一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務提交的結果不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務的結果一一致性與原子性致性與原子性銀行轉帳:從帳號A中取出一萬元,存入帳號B。n定義一個事務,該事務包括兩個操作n這兩個操作要么全做,要么全不做n全做或者全不做,數(shù)據(jù)庫都處于一致性狀態(tài)。n如果只做一個操作,數(shù)據(jù)庫就處于不一致性狀態(tài)。 B=B+1 A=A-1BA3. 隔離性隔離性對并發(fā)執(zhí)行而言一個事務的執(zhí)行不能被其他事務干擾n一個事務內部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是

5、隔離的n并發(fā)執(zhí)行的各個事務之間不能互相干擾T1的修改被的修改被T2覆蓋了!覆蓋了! 讀A=16 AA-3寫回A=13 讀A=16 AA-1 寫回A=15 T2T14. 持續(xù)性持續(xù)性n持續(xù)性也稱永久性(Permanence)n一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。n接下來的其他操作或故障不應該對其執(zhí)行結果有任何影響。事務的特性事務的特性 n保證事務ACID特性是事務處理的任務n破壞事務ACID特性的因素n多個事務并行運行時,不同事務的操作交叉執(zhí)行n事務在運行過程中被強行停止第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類

6、7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.2 數(shù)據(jù)庫恢復概述數(shù)據(jù)庫恢復概述n故障是不可避免的n計算機硬件故障n系統(tǒng)軟件和應用軟件的錯誤n操作員的失誤n惡意的破壞n故障的影響n運行事務非正常中斷n破壞數(shù)據(jù)庫數(shù)據(jù)庫恢復概述(續(xù))數(shù)據(jù)庫恢復概述(續(xù))n數(shù)據(jù)庫管理系統(tǒng)對故障的對策nDBMS提供恢復子系統(tǒng)n保證故障發(fā)生后,能把數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)恢復到某種邏輯一致的狀態(tài)n保證事務ACIDn恢復技術是衡量系統(tǒng)優(yōu)劣的重要指標第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3

7、故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結一、事務故障一、事務故障n什么是事務故障n某個事務在運行過程中由于種種原因未運行至正常終止點就夭折了n事務故障的常見原因n輸入數(shù)據(jù)有誤n運算溢出n違反了某些完整性限制n某些應用程序出錯n并行事務發(fā)生死鎖n。事務故障的恢復事務故障的恢復n發(fā)生事務故障時,夭折的事務可能已把對數(shù)據(jù)庫的部分修改寫回磁盤n事務故障的恢復:撤消事務(UNDO)n強行回滾(ROLLBACK)該事務n清除該事務對數(shù)據(jù)庫的所有修改,使得這個事務象根本沒有啟動過一樣二、系統(tǒng)故障二、系統(tǒng)故障n什么

8、是系統(tǒng)故障n整個系統(tǒng)的正常運行突然被破壞n所有正在運行的事務都非正常終止n內存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失n外部存儲設備上的數(shù)據(jù)未受影響系統(tǒng)故障的常見原因系統(tǒng)故障的常見原因n操作系統(tǒng)或DBMS代碼錯誤n操作員操作失誤n特定類型的硬件錯誤(如CPU故障)n突然停電系統(tǒng)故障的恢復系統(tǒng)故障的恢復n 清除尚未完成的事務對數(shù)據(jù)庫的所有修改n系統(tǒng)重新啟動時,恢復程序要強行撤消(UNDO)所有未完成事務n將緩沖區(qū)中已完成事務提交的結果寫入數(shù)據(jù)庫n系統(tǒng)重新啟動時,恢復程序需要重做(REDO)所有已提交的事務7.3 故障的種類故障的種類n事務故障n系統(tǒng)故障n介質故障三、介質故障三、介質故障n硬件故障使存儲在外存

9、中的數(shù)據(jù)部分丟失或全部丟失n介質故障比前兩類故障的可能性小得多,但破壞性大得多介質故障的常見原因介質故障的常見原因n硬件故障n磁盤損壞n磁頭碰撞n操作系統(tǒng)的某種潛在錯誤n瞬時強磁場干擾介質故障的恢復介質故障的恢復n裝入數(shù)據(jù)庫發(fā)生介質故障前某個時刻的數(shù)據(jù)副本n重做自此時始的所有成功事務,將這些事務已提交的結果重新記入數(shù)據(jù)庫恢復操作的基本原理恢復操作的基本原理n恢復操作的基本原理:冗余n利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分數(shù)據(jù)n恢復的實現(xiàn)技術:復雜n一個大型數(shù)據(jù)庫產品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的

10、基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.4 恢復的實現(xiàn)技術恢復的實現(xiàn)技術恢復機制涉及的關鍵問題1. 如何建立冗余數(shù)據(jù)n數(shù)據(jù)轉儲(backup)n登錄日志文件(logging)2. 如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復7.4.1 數(shù)據(jù)轉儲數(shù)據(jù)轉儲一、什么是轉儲二、轉儲的用途三、轉儲方法一、什么是轉儲一、什么是轉儲n轉儲是指DBA將整個數(shù)據(jù)庫復制到磁帶或另一個磁盤上保存起來的過程。n這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。轉儲轉儲 故障發(fā)生點故障發(fā)生點 轉儲轉儲

11、 運行事務運行事務 正常運行正常運行 Ta Ta Tb Tb Tf Tf 重裝后備副本重裝后備副本 重新運行事務重新運行事務恢復恢復 三、轉儲方法三、轉儲方法1靜態(tài)轉儲與動態(tài)轉儲2海量轉儲與增量轉儲3轉儲方法小結1靜態(tài)轉儲靜態(tài)轉儲n在系統(tǒng)中無運行事務時進行轉儲n轉儲開始時數(shù)據(jù)庫處于一致性狀態(tài)n轉儲期間不允許對數(shù)據(jù)庫的任何存取、修改活動n優(yōu)點:實現(xiàn)簡單n缺點:降低了數(shù)據(jù)庫的可用性n轉儲必須等用戶事務結束n新的事務必須等轉儲結束利用靜態(tài)轉儲副本進行恢復利用靜態(tài)轉儲副本進行恢復 故障發(fā)生點故障發(fā)生點 靜態(tài)靜態(tài)轉儲轉儲 運行事務運行事務 正常運行正常運行 Ta Ta Tb Tb Tf Tf 重裝后備副

12、本重裝后備副本 恢復恢復 動態(tài)轉儲動態(tài)轉儲n轉儲操作與用戶事務并發(fā)進行n轉儲期間允許對數(shù)據(jù)庫進行存取或修改n優(yōu)點n不用等待正在運行的用戶事務結束n不會影響新事務的運行n動態(tài)轉儲的缺點n不能保證副本中的數(shù)據(jù)正確有效動態(tài)轉儲動態(tài)轉儲n利用動態(tài)轉儲得到的副本進行故障恢復n需要把動態(tài)轉儲期間各事務對數(shù)據(jù)庫的修改活動登記下來,建立日志文件n后備副本加上日志文件才能把數(shù)據(jù)庫恢復到某一時刻的正確狀態(tài)利用動態(tài)轉儲副本進行恢復利用動態(tài)轉儲副本進行恢復 運行事務運行事務 故障發(fā)生點故障發(fā)生點 動態(tài)動態(tài)轉儲轉儲 運行事務運行事務 正常運行正常運行 Ta Ta Tb Tb Tf Tf重裝后備副本重裝后備副本 利用日志

13、文件恢復利用日志文件恢復恢復恢復 利用動態(tài)轉儲副本進行恢復利用動態(tài)轉儲副本進行恢復 Ta Ta Tb Tb Tf Tf 動態(tài)動態(tài)轉儲轉儲 運行事務運行事務 故障發(fā)生點故障發(fā)生點正常運行正常運行 登記日志文件登記日志文件 登記新日志文件登記新日志文件 轉儲日志文件轉儲日志文件 重裝后備副本,然后利用轉儲的日志文件恢復重裝后備副本,然后利用轉儲的日志文件恢復恢復到一恢復到一 致性狀態(tài)致性狀態(tài)2海量轉儲與增量轉儲海量轉儲與增量轉儲n海量轉儲: 每次轉儲全部數(shù)據(jù)庫n增量轉儲: 只轉儲上次轉儲后更新過的數(shù)據(jù)n海量轉儲與增量轉儲比較n從恢復角度看,使用海量轉儲得到的后備副本進行恢復往往更方便n但如果數(shù)據(jù)庫

14、很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效3轉儲方法小結轉儲方法小結n轉儲方法分類 轉儲狀態(tài)轉儲狀態(tài)動態(tài)轉儲動態(tài)轉儲靜態(tài)轉儲靜態(tài)轉儲轉儲轉儲方式方式海量轉儲海量轉儲動態(tài)海量轉儲動態(tài)海量轉儲靜態(tài)海量轉儲靜態(tài)海量轉儲增量轉儲增量轉儲動態(tài)增量轉儲動態(tài)增量轉儲靜態(tài)增量轉儲靜態(tài)增量轉儲轉儲策略轉儲策略n應定期進行數(shù)據(jù)轉儲,制作后備副本。n但轉儲又是十分耗費時間和資源的,不能頻繁進行。nDBA應該根據(jù)數(shù)據(jù)庫使用情況確定適當?shù)霓D儲周期和轉儲方法。 例:n每天晚上進行動態(tài)增量轉儲n每周進行一次動態(tài)海量轉儲n每月進行一次靜態(tài)海量轉儲7.4 恢復的實現(xiàn)技術恢復的實現(xiàn)技術7.4.1 數(shù)據(jù)轉儲7.4.2 登

15、記日志文件7.4.2 登記日志文件登記日志文件一、日志文件的內容二、日志文件的用途三、登記日志文件的原則一、日志文件的內容一、日志文件的內容1. 什么是日志文件日志文件(log)是用來記錄事務對數(shù)據(jù)庫的更新操作的文件2. 日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件日志文件的內容(續(xù))日志文件的內容(續(xù))3. 日志文件內容n各個事務的開始標記(BEGIN TRANSACTION)n各個事務的結束標記(COMMIT或ROLLBACK)n各個事務的所有更新操作n與事務有關的內部更新操作日志文件中的一個日志記錄 (log record)4. 基于記錄的日志文件基于記錄的日志文件每條日

16、志記錄的內容n事務標識n操作類型(插入、刪除或修改)n操作對象(記錄ID、Block NO.)n更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值)n更新后數(shù)據(jù)的新值(對刪除操作而言, 此項為空值)5. 基于數(shù)據(jù)塊的日志文件基于數(shù)據(jù)塊的日志文件每條日志記錄的內容n事務標識(標明是那個事務)n操作對象(記錄ID、Block NO.)n更新前數(shù)據(jù)所在的整個數(shù)據(jù)塊的值(對插入操作而言,此項為空值)n更新后整個數(shù)據(jù)塊的值(對刪除操作而言, 此項為空值)二、日志文件的用途二、日志文件的用途1用途n進行事務故障恢復n進行系統(tǒng)故障恢復n協(xié)助后備副本進行介質故障恢復日志文件的用途(續(xù))日志文件的用途(續(xù))2與靜態(tài)轉

17、儲后備副本配合進行介質故障恢復n靜態(tài)轉儲的數(shù)據(jù)已是一致性的數(shù)據(jù)n如果靜態(tài)轉儲完成后,仍能定期轉儲日志文件,則在出現(xiàn)介質故障重裝數(shù)據(jù)副本后,可以利用這些日志文件副本對已完成的事務進行重做處理n這樣不必重新運行那些已完成的事務程序就可把數(shù)據(jù)庫恢復到故障前某一時刻的正確狀態(tài)日志文件的用途(續(xù))日志文件的用途(續(xù)) 故障發(fā)生點故障發(fā)生點 靜態(tài)轉儲靜態(tài)轉儲 運行事務運行事務 正常運行正常運行 Ta Ta Tb TfTb Tf 登記日志文件登記日志文件 重裝后備副本重裝后備副本 利用日志文件恢復事務利用日志文件恢復事務 繼續(xù)運行繼續(xù)運行介質故障恢復介質故障恢復 登記日志文登記日志文件件 日志文件的用途(續(xù)

18、)日志文件的用途(續(xù))3介質故障恢復:LOG FILE + 動態(tài)轉儲后備副本n動態(tài)轉儲數(shù)據(jù)庫:同時轉儲同一時點的日志文件n后備副本與該日志文件結合起來才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。n利用這些日志文件副本進一步恢復事務,避免重新運行事務程序。三、登記日志文件的原則三、登記日志文件的原則n為保證數(shù)據(jù)庫是可恢復的,登記日志文件時必須遵循兩條原則n登記的次序嚴格按并行事務執(zhí)行的時間次序n必須先寫日志文件,后寫數(shù)據(jù)庫n寫日志文件操作:把表示這個修改的日志記錄 寫到日志文件n寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中登記日志文件的原則(續(xù))登記日志文件的原則(續(xù))n為什么要先寫日志文件n寫數(shù)據(jù)庫和寫日志文件

19、是兩個不同的操作n在這兩個操作之間可能發(fā)生故障n如果先寫了數(shù)據(jù)庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復這個修改了n如果先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢復時只不過是多執(zhí)行一次不必要的UNDO操作,并不會影響數(shù)據(jù)庫的正確性第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.5 恢復策略恢復策略7.5.1 事務故障的恢復7.5.2 系統(tǒng)故障的恢復7.5.3 介質故障的恢復7.5.1 事務故障的恢

20、復事務故障的恢復n事務故障:事務在運行至正常終止點前被中止n恢復方法n由恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務已對數(shù)據(jù)庫進行的修改n事務故障的恢復由系統(tǒng)自動完成,不需要用戶干預事務故障的恢復步驟事務故障的恢復步驟1. 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。2. 對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”(Befor Image, BI)寫入數(shù)據(jù)庫。n插入操作, “更新前的值”為空,則相當于做刪除操作n刪除操作,“更新后的值”為空,則相當于做插入操作n若是修改操作,則用BI 代替 AI(After Image)事務故障的恢復步驟事務故障的恢復

21、步驟3. 繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。4. 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。7.5.2 系統(tǒng)故障的恢復系統(tǒng)故障的恢復n系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因n一些未完成事務對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫n一些已提交事務對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫n恢復方法n1. Undo 故障發(fā)生時未完成的事務n2. Redo 已完成的事務n系統(tǒng)故障的恢復由系統(tǒng)在重新啟動時自動完成,不需要用戶干預系統(tǒng)故障的恢復系統(tǒng)故障的恢復步驟步驟1.正向掃描日志文件(即從頭掃描日志文件)nRedo隊列: 在故障發(fā)生前已經(jīng)提交的事務 T1, T3, T8

22、.nUndo隊列:故障發(fā)生時尚未完成的事務 T2, T4, T5, T6, T7, T9 .系統(tǒng)故障的恢復步驟系統(tǒng)故障的恢復步驟2. 對Undo隊列事務進行UNDO處理 反向掃描日志文件,對每個UNDO事務的更 新操作執(zhí)行逆操作 T2, T4, T5, T6, T7, T9 3. 對Redo隊列事務進行REDO處理 正向掃描日志文件,對每個REDO事務重新 執(zhí)行登記的操作 T1, T3, T8.7.5.3 介質故障的恢復介質故障的恢復1. 重裝數(shù)據(jù)庫, 使數(shù)據(jù)庫恢復到一致性狀態(tài)2. 重做已完成的事務7.5.3 介質故障的恢復介質故障的恢復n恢復步驟1. 裝入最新的后備數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復到

23、最近一次轉儲時的一致性狀態(tài)。n對于靜態(tài)轉儲的數(shù)據(jù)庫副本,裝入后數(shù)據(jù)庫即處于一致性狀態(tài)n對于動態(tài)轉儲的數(shù)據(jù)庫副本,還須同時裝入轉儲時刻的日志文件副本,利用與恢復系統(tǒng)故障相同的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。利用靜態(tài)轉儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài)利用靜態(tài)轉儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài) 故障發(fā)生點故障發(fā)生點 靜態(tài)靜態(tài)轉儲轉儲 運行事務運行事務 正常運行正常運行 Ta Ta Tb Tb Tf Tf 登記日志文件登記日志文件 重裝后備副本重裝后備副本 恢復恢復 利用動態(tài)轉儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài)利用動態(tài)轉儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài) Ta Ta Tb Tb Tf

24、Tf 動態(tài)動態(tài)轉儲轉儲 運行事務運行事務 故障發(fā)生點故障發(fā)生點正常運行正常運行 登記日志文件登記日志文件 登記新日志文件登記新日志文件 轉儲日志文件轉儲日志文件 重裝后備副本,然后利用轉儲的日志文件恢復重裝后備副本,然后利用轉儲的日志文件恢復恢復到一恢復到一 致性狀態(tài)致性狀態(tài)介質故障的恢復(續(xù))介質故障的恢復(續(xù))2. 裝入有關的日志文件副本,重做已完成的事務。n首先掃描日志文件,找出故障發(fā)生時已提交的事務的標識,將其記入重做隊列。n然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。介質故障的恢復(續(xù))介質故障的恢復(續(xù))介質故障的恢復需要DBA

25、介入nDBA的工作n重裝最近轉儲的數(shù)據(jù)庫副本和有關的各日志文件副本n執(zhí)行系統(tǒng)提供的恢復命令n具體的恢復操作仍由DBMS完成第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.6 具有檢查點的恢復技術具有檢查點的恢復技術一、問題的提出二、檢查點技術三、利用檢查點的恢復策略一、問題的提出一、問題的提出n兩個問題n搜索整個日志將耗費大量的時間nREDO處理:重新執(zhí)行,浪費了大量時間解決方案解決方案n具有檢查點(check

26、point)的恢復技術n在日志文件中增加檢查點記錄(checkpoint)n增加重新開始文件n恢復子系統(tǒng)在登錄日志文件期間動態(tài)地維護日志二、檢查點技術二、檢查點技術n檢查點記錄的內容n1. 建立檢查點時刻所有正在執(zhí)行的事務清單n2. 這些事務最近一個日志記錄的地址n重新開始文件的內容n記錄各個檢查點記錄在日志文件中的地址在檢查點在檢查點 維護日志文件維護日志文件1.將當前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上。2.在日志文件中寫入一個檢查點記錄。3. 將當前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中。4. 把檢查點記錄在日志文件中的地址寫入一個重新開始文件。建立檢查點建立檢查點n定期n

27、按照預定的一個時間間隔n不定期n按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點三、利用檢查點的恢復策略三、利用檢查點的恢復策略n當事務T在一個檢查點之前提交 T對數(shù)據(jù)庫所做的修改已寫入數(shù)據(jù)庫n在進行恢復處理時,沒有必要對事務T執(zhí)行REDO操作利用檢查點的恢復策略(續(xù))利用檢查點的恢復策略(續(xù))Tc (檢查點檢查點)Tf(系統(tǒng)故障系統(tǒng)故障) REDOUNDOUNDO REDOT2T3T4T5不要不要REDOT1利用檢查點的利用檢查點的恢復步驟恢復步驟1. 從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址2 由該地址在日志文件中找到最后一個檢查點記錄利用檢查點的恢復策略(續(xù))利用檢查點的

28、恢復策略(續(xù))2.由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務清單ACTIVE-LISTn建立兩個事務隊列nUNDO-LIST nREDO-LIST n把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。利用檢查點的恢復策略(續(xù))利用檢查點的恢復策略(續(xù))3.從檢查點開始正向掃描日志文件,直到日志文件結束n如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列n如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列4.對UNDO-LIST中的每個事務執(zhí)行UNDO操作, 對REDO-LIST中的每個事務執(zhí)行REDO操作第七章第七章 數(shù)據(jù)庫恢

29、復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.7 數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像n介質故障是對系統(tǒng)影響最為嚴重的一種故障,嚴重影響數(shù)據(jù)庫的可用性n介質故障恢復比較費時n為預防介質故障,DBA必須周期性地轉儲數(shù)據(jù)庫n提高數(shù)據(jù)庫可用性的解決方案n數(shù)據(jù)庫鏡像(Mirror)數(shù)據(jù)庫鏡像(續(xù))數(shù)據(jù)庫鏡像(續(xù))n數(shù)據(jù)庫鏡像nDBMS自動把整個數(shù)據(jù)庫或其中的關鍵數(shù)據(jù)復制到另一個磁盤上nDBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性(圖7.5a)數(shù)據(jù)庫鏡像的用途

30、數(shù)據(jù)庫鏡像的用途n出現(xiàn)介質故障時nDBMS自動利用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫的恢復,不需要關閉系統(tǒng)和重裝數(shù)據(jù)庫副本(圖7.5b)n沒有出現(xiàn)故障時n可用于并發(fā)操作(圖7.5a)n一個用戶對數(shù)據(jù)加排他鎖修改數(shù)據(jù)n其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù)數(shù)據(jù)庫鏡像(續(xù))數(shù)據(jù)庫鏡像(續(xù))第七章第七章 數(shù)據(jù)庫恢復技術數(shù)據(jù)庫恢復技術7.1 事務的基本概念7.2 數(shù)據(jù)庫恢復概述7.3 故障的種類7.4 恢復的實現(xiàn)技術7.5 恢復策略7.6 具有檢查點的恢復技術7.7 數(shù)據(jù)庫鏡像7.8 Oracle的恢復技術7.9 小結7.8 Oracle的恢復技術的恢復技術1. 轉儲2. 登記日志文件7.8 Oracle的恢復技術:轉

31、儲的恢復技術:轉儲n轉儲后備副本的方法n文件拷貝nEXPORT實用程序n用SQL命令SPOOLn自己編程實現(xiàn)重裝后備副本的方法重裝后備副本的方法n文件拷貝nIMPORT實用程序nSQL*LOADER實用程序n自己編程實現(xiàn)2. 登記日志文件登記日志文件nORACLE V.5:以數(shù)據(jù)塊為單位nORACLE V.7:REDO日志 + 回滾段ORACLE V.5的恢復技術的恢復技術n日志文件以數(shù)據(jù)塊為單位,恢復操作不是基于操作,而是基于數(shù)據(jù)塊n將更新前的舊值與更新后的新值分別放在兩個不同的日志文件中n記錄數(shù)據(jù)庫更新前舊值的日志文件稱為數(shù)據(jù)庫前像文件(Before Image,簡稱BI文件)n記錄數(shù)據(jù)庫更新后新值的日志文件稱為數(shù)據(jù)庫的后像文件(After Image,簡稱AI文件)OracleV.5 的恢復技術(續(xù))的恢復技術(續(xù))nBI文件是必須的,AI文件是任選的n沒有AI文件:只能執(zhí)行UNDO處理,不能執(zhí)行REDO處理Oracle v.7的恢復技術(續(xù))的

溫馨提示

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

最新文檔

評論

0/150

提交評論