




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第七章 數(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 小結第1頁/共99頁7.1 事務的基本概念一、什么是事務二、如何定義事務三、事務的特性第2頁/共99頁一、什么是事務 事務(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位 事務和程序是兩個概念 在關系數(shù)據(jù)庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序 一個應用程序通常包含多個事務 事務是恢復和并發(fā)控制的基本單位第3
2、頁/共99頁二、如何定義事務 顯式定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 語句1 SQL 語句1 SQL 語句2 SQL 語句2 。 。 COMMIT ROLLBACK 隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務第4頁/共99頁事務結束COMMIT事務正常結束 提交事務的所有操作(讀+更新)事務中所有對數(shù)據(jù)庫的更新永久生效ROLLBACK事務異常終止 事務運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務的所有更新操作 事務滾回到開始時的狀態(tài)第5頁/共99頁三、事務的特性(ACID特性)事務的ACID特性:原子性(Atomic
3、ity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability )第6頁/共99頁1. 原子性事務是數(shù)據(jù)庫的邏輯工作單位 事務中包括的諸操作要么都做,要么都不做第7頁/共99頁2. 一致性事務執(zhí)行的結果必須是使數(shù)據(jù)庫從一個 一致性狀態(tài)變到另一個一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務提交的結果不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務的結果第8頁/共99頁一致性與原子性銀行轉(zhuǎn)帳:從帳號A中取出一萬元,存入帳號B。 定義一個事務,該事務包括兩個操作 這兩個操作要么全做,要么全不做 全做或者全不做,數(shù)據(jù)庫都處于一致性狀態(tài)。 如果只做一個操作,數(shù)據(jù)庫就處于不一致性狀態(tài)。
4、B=B+1 A=A-1BA第9頁/共99頁3. 隔離性對并發(fā)執(zhí)行而言一個事務的執(zhí)行不能被其他事務干擾 一個事務內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是隔離的 并發(fā)執(zhí)行的各個事務之間不能互相干擾第10頁/共99頁T1的修改被T2覆蓋了! 讀A=16 AA-3寫回A=13 讀A=16 AA-1 寫回A=15 T2T1第11頁/共99頁4. 持續(xù)性 持續(xù)性也稱永久性(Permanence) 一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。 接下來的其他操作或故障不應該對其執(zhí)行結果有任何影響。第12頁/共99頁事務的特性 保證事務ACID特性是事務處理的任務 破壞事務ACID特性的因素 多個事
5、務并行運行時,不同事務的操作交叉執(zhí)行 事務在運行過程中被強行停止第13頁/共99頁7.2 數(shù)據(jù)庫恢復概述 故障是不可避免的 計算機硬件故障 系統(tǒng)軟件和應用軟件的錯誤 操作員的失誤 惡意的破壞 故障的影響 運行事務非正常中斷 破壞數(shù)據(jù)庫第14頁/共99頁 數(shù)據(jù)庫管理系統(tǒng)對故障的對策 DBMS提供恢復子系統(tǒng) 保證故障發(fā)生后,能把數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)恢復到某種邏輯一致的狀態(tài) 保證事務ACID 恢復技術是衡量系統(tǒng)優(yōu)劣的重要指標第15頁/共99頁一、事務故障 什么是事務故障 某個事務在運行過程中由于種種原因未運行至正常終止點就夭折了 事務故障的常見原因 輸入數(shù)據(jù)有誤 運算溢出 違反了某些完整性限制
6、某些應用程序出錯 并行事務發(fā)生死鎖 。第16頁/共99頁事務故障的恢復 發(fā)生事務故障時,夭折的事務可能已把對數(shù)據(jù)庫的部分修改寫回磁盤 事務故障的恢復:撤消事務(UNDO) 強行回滾(ROLLBACK)該事務 清除該事務對數(shù)據(jù)庫的所有修改,使得這個事務象根本沒有啟動過一樣第17頁/共99頁二、系統(tǒng)故障什么是系統(tǒng)故障 整個系統(tǒng)的正常運行突然被破壞 所有正在運行的事務都非正常終止 內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失 外部存儲設備上的數(shù)據(jù)未受影響第18頁/共99頁系統(tǒng)故障的常見原因 操作系統(tǒng)或DBMS代碼錯誤 操作員操作失誤 特定類型的硬件錯誤(如CPU故障) 突然停電第19頁/共99頁系統(tǒng)故障的恢復
7、清除尚未完成的事務對數(shù)據(jù)庫的所有修改 系統(tǒng)重新啟動時,恢復程序要強行撤消(UNDO)所有未完成事務 將緩沖區(qū)中已完成事務提交的結果寫入數(shù)據(jù)庫 系統(tǒng)重新啟動時,恢復程序需要重做(REDO)所有已提交的事務第20頁/共99頁7.3 故障的種類事務故障系統(tǒng)故障介質(zhì)故障第21頁/共99頁三、介質(zhì)故障 硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失 介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多第22頁/共99頁介質(zhì)故障的常見原因 硬件故障 磁盤損壞 磁頭碰撞 操作系統(tǒng)的某種潛在錯誤 瞬時強磁場干擾第23頁/共99頁介質(zhì)故障的恢復 裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)副本 重做自此時始的所有成功事
8、務,將這些事務已提交的結果重新記入數(shù)據(jù)庫第24頁/共99頁恢復操作的基本原理 恢復操作的基本原理:冗余 利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分數(shù)據(jù) 恢復的實現(xiàn)技術:復雜 一個大型數(shù)據(jù)庫產(chǎn)品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上第25頁/共99頁第七章 數(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 小結第26頁/共99頁7.4 恢復的實現(xiàn)技術恢復機制涉及的關鍵問題1. 如何建立冗余數(shù)據(jù) 數(shù)據(jù)轉(zhuǎn)儲(backup)
9、 登錄日志文件(logging)2. 如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復第27頁/共99頁數(shù)據(jù)轉(zhuǎn)儲一、什么是轉(zhuǎn)儲二、轉(zhuǎn)儲的用途三、轉(zhuǎn)儲方法第28頁/共99頁一、什么是轉(zhuǎn)儲 轉(zhuǎn)儲是指DBA將整個數(shù)據(jù)庫復制到磁帶或另一個磁盤上保存起來的過程。 這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。第29頁/共99頁轉(zhuǎn)儲 故障發(fā)生點 轉(zhuǎn)儲 運行事務 正常運行 Ta Ta Tb Tb Tf Tf 重裝后備副本 重新運行事務恢復 第30頁/共99頁三、轉(zhuǎn)儲方法1靜態(tài)轉(zhuǎn)儲與動態(tài)轉(zhuǎn)儲2海量轉(zhuǎn)儲與增量轉(zhuǎn)儲3轉(zhuǎn)儲方法小結第31頁/共99頁1靜態(tài)轉(zhuǎn)儲 在系統(tǒng)中無運行事務時進行轉(zhuǎn)儲轉(zhuǎn)儲開始時數(shù)據(jù)庫處于一致性狀態(tài)轉(zhuǎn)儲期間不允許對
10、數(shù)據(jù)庫的任何存取、修改活動 優(yōu)點:實現(xiàn)簡單 缺點:降低了數(shù)據(jù)庫的可用性 轉(zhuǎn)儲必須等用戶事務結束 新的事務必須等轉(zhuǎn)儲結束第32頁/共99頁利用靜態(tài)轉(zhuǎn)儲副本進行恢復 故障發(fā)生點 靜態(tài)轉(zhuǎn)儲 運行事務 正常運行 Ta Ta Tb Tb Tf Tf 重裝后備副本 恢復 第33頁/共99頁動態(tài)轉(zhuǎn)儲 轉(zhuǎn)儲操作與用戶事務并發(fā)進行 轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改 優(yōu)點 不用等待正在運行的用戶事務結束 不會影響新事務的運行 動態(tài)轉(zhuǎn)儲的缺點 不能保證副本中的數(shù)據(jù)正確有效第34頁/共99頁動態(tài)轉(zhuǎn)儲 利用動態(tài)轉(zhuǎn)儲得到的副本進行故障恢復 需要把動態(tài)轉(zhuǎn)儲期間各事務對數(shù)據(jù)庫的修改活動登記下來,建立日志文件 后備副本加上日
11、志文件才能把數(shù)據(jù)庫恢復到某一時刻的正確狀態(tài)第35頁/共99頁利用動態(tài)轉(zhuǎn)儲副本進行恢復 運行事務 故障發(fā)生點 動態(tài)轉(zhuǎn)儲 運行事務 正常運行 Ta Ta Tb Tb Tf Tf重裝后備副本 利用日志文件恢復恢復 第36頁/共99頁利用動態(tài)轉(zhuǎn)儲副本進行恢復 Ta Ta Tb Tb Tf Tf 動態(tài)轉(zhuǎn)儲 運行事務 故障發(fā)生點正常運行 登記日志文件 登記新日志文件 轉(zhuǎn)儲日志文件 重裝后備副本,然后利用轉(zhuǎn)儲的日志文件恢復恢復到一 致性狀態(tài)第37頁/共99頁2海量轉(zhuǎn)儲與增量轉(zhuǎn)儲 海量轉(zhuǎn)儲: 每次轉(zhuǎn)儲全部數(shù)據(jù)庫 增量轉(zhuǎn)儲: 只轉(zhuǎn)儲上次轉(zhuǎn)儲后更新過的數(shù)據(jù) 海量轉(zhuǎn)儲與增量轉(zhuǎn)儲比較 從恢復角度看,使用海量轉(zhuǎn)儲得到的
12、后備副本進行恢復往往更方便 但如果數(shù)據(jù)庫很大,事務處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效第38頁/共99頁3轉(zhuǎn)儲方法小結轉(zhuǎn)儲方法分類轉(zhuǎn)儲狀態(tài)動態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲轉(zhuǎn)儲方式海量轉(zhuǎn)儲動態(tài)海量轉(zhuǎn)儲靜態(tài)海量轉(zhuǎn)儲增量轉(zhuǎn)儲動態(tài)增量轉(zhuǎn)儲靜態(tài)增量轉(zhuǎn)儲第39頁/共99頁轉(zhuǎn)儲策略 應定期進行數(shù)據(jù)轉(zhuǎn)儲,制作后備副本。 但轉(zhuǎn)儲又是十分耗費時間和資源的,不能頻繁進行。 DBA應該根據(jù)數(shù)據(jù)庫使用情況確定適當?shù)霓D(zhuǎn)儲周期和轉(zhuǎn)儲方法。 例: 每天晚上進行動態(tài)增量轉(zhuǎn)儲 每周進行一次動態(tài)海量轉(zhuǎn)儲 每月進行一次靜態(tài)海量轉(zhuǎn)儲第40頁/共99頁7.4 恢復的實現(xiàn)技術數(shù)據(jù)轉(zhuǎn)儲登記日志文件第41頁/共99頁登記日志文件一、日志文件的內(nèi)容二、日
13、志文件的用途三、登記日志文件的原則第42頁/共99頁一、日志文件的內(nèi)容1. 什么是日志文件日志文件(log)是用來記錄事務對數(shù)據(jù)庫的更新操作的文件2. 日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件第43頁/共99頁日志文件的內(nèi)容(續(xù))3. 日志文件內(nèi)容 各個事務的開始標記(BEGIN TRANSACTION) 各個事務的結束標記(COMMIT或ROLLBACK) 各個事務的所有更新操作 與事務有關的內(nèi)部更新操作日志文件中的一個日志記錄 (log record)第44頁/共99頁4. 基于記錄的日志文件每條日志記錄的內(nèi)容 事務標識 操作類型(插入、刪除或修改) 操作對象(記錄ID
14、、Block NO.) 更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值) 更新后數(shù)據(jù)的新值(對刪除操作而言, 此項為空值)第45頁/共99頁5. 基于數(shù)據(jù)塊的日志文件每條日志記錄的內(nèi)容 事務標識(標明是那個事務) 操作對象(記錄ID、Block NO.) 更新前數(shù)據(jù)所在的整個數(shù)據(jù)塊的值(對插入操作而言,此項為空值) 更新后整個數(shù)據(jù)塊的值(對刪除操作而言, 此項為空值)第46頁/共99頁二、日志文件的用途1用途 進行事務故障恢復 進行系統(tǒng)故障恢復 協(xié)助后備副本進行介質(zhì)故障恢復第47頁/共99頁日志文件的用途(續(xù))2與靜態(tài)轉(zhuǎn)儲后備副本配合進行介質(zhì)故障恢復 靜態(tài)轉(zhuǎn)儲的數(shù)據(jù)已是一致性的數(shù)據(jù) 如果靜態(tài)轉(zhuǎn)儲
15、完成后,仍能定期轉(zhuǎn)儲日志文件,則在出現(xiàn)介質(zhì)故障重裝數(shù)據(jù)副本后,可以利用這些日志文件副本對已完成的事務進行重做處理 這樣不必重新運行那些已完成的事務程序就可把數(shù)據(jù)庫恢復到故障前某一時刻的正確狀態(tài)第48頁/共99頁日志文件的用途(續(xù)) 故障發(fā)生點 靜態(tài)轉(zhuǎn)儲 運行事務 正常運行 Ta Ta Tb TfTb Tf 登記日志文件 重裝后備副本 利用日志文件恢復事務 繼續(xù)運行介質(zhì)故障恢復 登記日志文件 第49頁/共99頁日志文件的用途(續(xù))3介質(zhì)故障恢復:LOG FILE + 動態(tài)轉(zhuǎn)儲后備副本 動態(tài)轉(zhuǎn)儲數(shù)據(jù)庫:同時轉(zhuǎn)儲同一時點的日志文件 后備副本與該日志文件結合起來才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。 利用這些
16、日志文件副本進一步恢復事務,避免重新運行事務程序。第50頁/共99頁三、登記日志文件的原則 為保證數(shù)據(jù)庫是可恢復的,登記日志文件時必須遵循兩條原則 登記的次序嚴格按并行事務執(zhí)行的時間次序 必須先寫日志文件,后寫數(shù)據(jù)庫 寫日志文件操作:把表示這個修改的日志記錄 寫到日志文件 寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中第51頁/共99頁登記日志文件的原則(續(xù)) 為什么要先寫日志文件 寫數(shù)據(jù)庫和寫日志文件是兩個不同的操作 在這兩個操作之間可能發(fā)生故障 如果先寫了數(shù)據(jù)庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復這個修改了 如果先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢復時只不過是多執(zhí)行一次不
17、必要的UNDO操作,并不會影響數(shù)據(jù)庫的正確性第52頁/共99頁7.5 恢復策略事務故障的恢復系統(tǒng)故障的恢復介質(zhì)故障的恢復第53頁/共99頁事務故障的恢復 事務故障:事務在運行至正常終止點前被中止 恢復方法 由恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務已對數(shù)據(jù)庫進行的修改 事務故障的恢復由系統(tǒng)自動完成,不需要用戶干預第54頁/共99頁事務故障的恢復步驟1. 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。2. 對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”(Befor Image, BI)寫入數(shù)據(jù)庫。 插入操作, “更新前的值”為空,則相當于做刪除操作 刪除操
18、作,“更新后的值”為空,則相當于做插入操作 若是修改操作,則用BI 代替 AI(After Image)第55頁/共99頁事務故障的恢復步驟3. 繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。4. 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。第56頁/共99頁系統(tǒng)故障的恢復 系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因 一些未完成事務對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫 一些已提交事務對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫 恢復方法 1. Undo 故障發(fā)生時未完成的事務 2. Redo 已完成的事務 系統(tǒng)故障的恢復由系統(tǒng)在重新啟動時自動完成,不需要用戶干預第57頁/共99
19、頁系統(tǒng)故障的恢復步驟1.正向掃描日志文件(即從頭掃描日志文件) Redo隊列: 在故障發(fā)生前已經(jīng)提交的事務 T1, T3, T8. Undo隊列:故障發(fā)生時尚未完成的事務 T2, T4, T5, T6, T7, T9 .第58頁/共99頁系統(tǒng)故障的恢復步驟2. 對Undo隊列事務進行UNDO處理 反向掃描日志文件,對每個UNDO事務的更 新操作執(zhí)行逆操作 T2, T4, T5, T6, T7, T9 3. 對Redo隊列事務進行REDO處理 正向掃描日志文件,對每個REDO事務重新 執(zhí)行登記的操作 T1, T3, T8.第59頁/共99頁介質(zhì)故障的恢復1. 重裝數(shù)據(jù)庫, 使數(shù)據(jù)庫恢復到一致性狀
20、態(tài)2. 重做已完成的事務第60頁/共99頁介質(zhì)故障的恢復 恢復步驟1. 裝入最新的后備數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。 對于靜態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,裝入后數(shù)據(jù)庫即處于一致性狀態(tài) 對于動態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還須同時裝入轉(zhuǎn)儲時刻的日志文件副本,利用與恢復系統(tǒng)故障相同的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。第61頁/共99頁利用靜態(tài)轉(zhuǎn)儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài) 故障發(fā)生點 靜態(tài)轉(zhuǎn)儲 運行事務 正常運行 Ta Ta Tb Tb Tf Tf 登記日志文件 重裝后備副本 恢復 第62頁/共99頁利用動態(tài)轉(zhuǎn)儲副本將數(shù)據(jù)庫恢復到一致性狀態(tài) Ta Ta Tb Tb
21、Tf Tf 動態(tài)轉(zhuǎn)儲 運行事務 故障發(fā)生點正常運行 登記日志文件 登記新日志文件 轉(zhuǎn)儲日志文件 重裝后備副本,然后利用轉(zhuǎn)儲的日志文件恢復恢復到一 致性狀態(tài)第63頁/共99頁2. 裝入有關的日志文件副本,重做已完成的事務。 首先掃描日志文件,找出故障發(fā)生時已提交的事務的標識,將其記入重做隊列。 然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。第64頁/共99頁介質(zhì)故障的恢復需要DBA介入 DBA的工作 重裝最近轉(zhuǎn)儲的數(shù)據(jù)庫副本和有關的各日志文件副本 執(zhí)行系統(tǒng)提供的恢復命令 具體的恢復操作仍由DBMS完成第65頁/共99頁7.6 具有檢查點的恢復技
22、術一、問題的提出二、檢查點技術三、利用檢查點的恢復策略第66頁/共99頁一、問題的提出 兩個問題 搜索整個日志將耗費大量的時間 REDO處理:重新執(zhí)行,浪費了大量時間第67頁/共99頁解決方案 具有檢查點(checkpoint)的恢復技術 在日志文件中增加檢查點記錄(checkpoint) 增加重新開始文件 恢復子系統(tǒng)在登錄日志文件期間動態(tài)地維護日志第68頁/共99頁第69頁/共99頁二、檢查點技術 檢查點記錄的內(nèi)容 1. 建立檢查點時刻所有正在執(zhí)行的事務清單 2. 這些事務最近一個日志記錄的地址 重新開始文件的內(nèi)容 記錄各個檢查點記錄在日志文件中的地址第70頁/共99頁第71頁/共99頁在檢
23、查點 維護日志文件1. 將當前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上。2. 在日志文件中寫入一個檢查點記錄。3. 將當前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中。4. 把檢查點記錄在日志文件中的地址寫入一個重新開始文件。第72頁/共99頁建立檢查點 定期 按照預定的一個時間間隔 不定期 按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點第73頁/共99頁三、利用檢查點的恢復策略 當事務T在一個檢查點之前提交 T對數(shù)據(jù)庫所做的修改已寫入數(shù)據(jù)庫 在進行恢復處理時,沒有必要對事務T執(zhí)行REDO操作第74頁/共99頁Tc (檢查點)Tf(系統(tǒng)故障) REDOUNDOUNDO REDOT2T3T
24、4T5不要REDOT1第75頁/共99頁利用檢查點的恢復步驟1. 從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址2 由該地址在日志文件中找到最后一個檢查點記錄第76頁/共99頁利用檢查點的恢復策略(續(xù))2.由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務清單ACTIVE-LIST 建立兩個事務隊列 UNDO-LIST REDO-LIST 把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。第77頁/共99頁利用檢查點的恢復策略(續(xù))3.從檢查點開始正向掃描日志文件,直到日志文件結束 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列 如有提交的事務T
25、j,把Tj從UNDO-LIST隊列移到REDO-LIST隊列4.對UNDO-LIST中的每個事務執(zhí)行UNDO操作, 對REDO-LIST中的每個事務執(zhí)行REDO操作第78頁/共99頁7.7 數(shù)據(jù)庫鏡像 介質(zhì)故障是對系統(tǒng)影響最為嚴重的一種故障,嚴重影響數(shù)據(jù)庫的可用性 介質(zhì)故障恢復比較費時 為預防介質(zhì)故障,DBA必須周期性地轉(zhuǎn)儲數(shù)據(jù)庫 提高數(shù)據(jù)庫可用性的解決方案 數(shù)據(jù)庫鏡像(Mirror)第79頁/共99頁 數(shù)據(jù)庫鏡像 DBMS自動把整個數(shù)據(jù)庫或其中的關鍵數(shù)據(jù)復制到另一個磁盤上 DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性(圖7.5a)第80頁/共99頁數(shù)據(jù)庫鏡像的用途 出現(xiàn)介質(zhì)故障時 DBMS自動利
26、用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫的恢復,不需要關閉系統(tǒng)和重裝數(shù)據(jù)庫副本(圖7.5b) 沒有出現(xiàn)故障時 可用于并發(fā)操作(圖7.5a) 一個用戶對數(shù)據(jù)加排他鎖修改數(shù)據(jù) 其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù)第81頁/共99頁第82頁/共99頁7.8 Oracle的恢復技術1. 轉(zhuǎn)儲2. 登記日志文件第83頁/共99頁7.8 Oracle的恢復技術:轉(zhuǎn)儲 轉(zhuǎn)儲后備副本的方法 文件拷貝 EXPORT實用程序 用SQL命令SPOOL 自己編程實現(xiàn)第84頁/共99頁重裝后備副本的方法 文件拷貝 IMPORT實用程序 SQL*LOADER實用程序 自己編程實現(xiàn)第85頁/共99頁2. 登記日志文件 ORACLE V.5:以數(shù)據(jù)塊為單位 ORACLE V.7:REDO日志 + 回滾段第86頁/共99頁ORACLE V.5的恢復技術 日志文件以數(shù)據(jù)塊為單位,恢復操作不是基于操作,而是基于數(shù)據(jù)塊 將更新前的舊值與更新后的新值分別放在兩個不同的日志文件中 記錄數(shù)據(jù)庫更新前舊值的日志文件稱為數(shù)據(jù)庫前像文件(Before Image,簡稱BI文件) 記錄數(shù)據(jù)庫更新后新值的日志文件稱為數(shù)據(jù)庫的后像文件(After Image,簡稱AI文件)第87頁/共99頁 BI文件是必須的,AI文件是任選的 沒有AI文件:只能執(zhí)行UNDO處理,不能執(zhí)行REDO處理第88頁/共99頁 RED
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年郴州市宜章縣城區(qū)學校教師選聘考試筆試試題(含答案)
- 2025年安徽蕪湖市灣沚區(qū)沚津供應鏈有限公司招聘考試筆試試題(含答案)
- 【寧波】2025年浙江寧波市北侖區(qū)事業(yè)單位面向2025屆高校畢業(yè)生招聘高層次緊缺人才32人筆試歷年典型考題及考點剖析附帶答案詳解
- 幼兒英語肢體教學課件
- 文庫發(fā)布:稅務師2024課件
- 整齊有序班會課件
- 整形的課件教學課件
- 分一分一教學課件北師版
- 教育部消防公開課課件
- 教學課件五年級下冊英語
- 品管圈QCC質(zhì)量持續(xù)改進案例皮膚科-降低窄頻中波紫外線照射不良反應發(fā)生率PDCA
- 中小學校長招聘校長招聘理論考試題
- 房地產(chǎn)基礎知識試題(附答案)
- GB/T 6896-2007鈮條
- GB/T 32151.6-2015溫室氣體排放核算與報告要求第6部分:民用航空企業(yè)
- GB/T 2543.2-2001紡織品紗線捻度的測定第2部分:退捻加捻法
- 2020四川考研數(shù)學二真題【含答案】
- 壓縮機拆除方案
- DB50-T 1293-2022 松材線蟲病疫木除治技術規(guī)范(標準文本)
- 微電子工藝實驗報告
- 金屬材料檢驗的標準課件
評論
0/150
提交評論