当资料库系统故障时回復處理

上传人:小** 文档编号:45551105 上传时间:2018-06-17 格式:PPT 页数:51 大小:1.18MB
返回 下载 相关 举报
当资料库系统故障时回復處理_第1页
第1页 / 共51页
当资料库系统故障时回復處理_第2页
第2页 / 共51页
当资料库系统故障时回復處理_第3页
第3页 / 共51页
当资料库系统故障时回復處理_第4页
第4页 / 共51页
当资料库系统故障时回復處理_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《当资料库系统故障时回復處理》由会员分享,可在线阅读,更多相关《当资料库系统故障时回復處理(51页珍藏版)》请在金锄头文库上搜索。

1、 Chap 15Chap 15回復處理回復處理 15-1-1 資料庫系統的故障種類 15-1-2 回復處理演算法與儲存體 15-1-3 資料存取的基礎15-1 回復處理的基礎 交易失敗(Transaction Failure):交易錯誤 是在執行交易的過程中所產生的軟體錯誤。 系統故障:斷電、網路問題或其他硬體或軟 體錯誤所導致的系統當機,因為系統當機, 儲存在記憶體的相關資料都會遺失。 儲存媒體故障:硬體磁碟讀寫頭損壞、磁區 損壞的問題或其他類似的硬碟錯誤所導致儲 存媒體儲存資料的損壞,儲存媒體錯誤會導 致資料庫系統的資料遺失,屬於資料庫系統 最嚴重的一種故障。15-1-1 資料庫系統的故障

2、種類 回復演算法主要分成兩個部分,如下所示 : 在資料庫系統正常執行交易時:預先執行相關 操作儲存所需資料,以備資料庫系統故障時擁 有足夠資訊,可以回復資料庫系統。 當資料庫系統故障時:如果資料庫系統故障發 生錯誤,能夠回復資料庫系統滿足交易的單元 性、一致性和永久性。簡單的說,不論資料庫 系統是正常執行或故障,都一定滿足資料庫一 致性,交易的單元性和永久性。15-1-2 回復處理演算法與儲存體 儲存體可以分為三種,如下所示: 揮發性儲存體:當系統當機、斷電或停電時,其 儲存資料就會消失的儲存結構。 非揮發性儲存體:這種儲存結構是對比揮發性儲 存結構,儲存結構不會因為系統當機、斷電或停 電而使

3、其儲存的資料消失。 穩定儲存體:這是一種可以在任何資料庫故障的 情況下,不論是系統當機或磁碟讀寫頭損壞、磁 區損壞,其儲存的資料都不會消失,其作法通常 是維護多份資料,分別備份儲存在多個非揮發性 儲存結構來達成。15-1-2 回復處理演算法與儲存體 資料庫系統的資料存取(Data Access)是從 儲存裝置磁碟的資料庫存取資料,取得執行 交易所需的資料。資料存取會影響資料庫系 統故障時,可能損失的資料,相對的,回復 處理就是在救回這些遺失的資料。 資料庫系統並不是直接從儲存裝置存取資料 ,而是透過資料庫緩衝區(Database Buffer) 和主記憶體中各交易的工作區(Work Area)

4、 。15-1-3 資料存取的基礎15-1-3 資料存取的基礎-圖例 15-2-1 交易記錄 15-2-2 基於交易記錄的回復處理 15-2-3 投影分頁15-2 回復處理的方式 以SQL Server來說,記錄管理(Log Manager )首先替每一筆交易產生唯一的交易編號, 記錄此交易所有寫入的資料庫單元操作,以 便在回復交易時,可以依據交易記錄,將所 有影響的資料回復到交易前的狀態。 交易可能擁有多項不同的寫入操作,所以同 一個交易會寫入多筆記錄,資料庫管理系統 是使用交易編號來識別相關記錄屬於哪一個 交易。15-2-1 交易記錄-說明15-2-1 交易記錄-欄位說明 例如:在SQL S

5、erver開始執行交易T時,資料 庫管理系統指定其交易編號為001,新增一筆 記錄到交易記錄,如下所示: 上述交易記錄編號是001,指令BEGIN TRAN 開始執行交易。接著將交易執行的所有 INSERT、UPDATE和DELETE指令都新增一 筆相同交易編號的記錄,如下所示:15-2-1 交易記錄-範例 基於交易記錄的回復處理(Log-Based Recovery)是使用交易記錄作為回復處理 的依據。 例如:在確認交易將更改的資料庫內容反應 到資料庫後,如果資料庫系統故障,回復處 理可以參考交易記錄(Transaction Log)來回 存各交易所作的資料庫寫入操作,以便將資 料庫內容回復

6、到交易前的狀態。15-2-2 基於交易記錄的回復處理 延遲資料庫更新(Defered Database Update) :將交易執行的所有資料庫更新操作都寫入 交易記錄,此動作稱為記錄寫入優先協定 (Write-ahead Log Protocol),但是資料 更新是在各交易的工作區,需要等到確認交 易後,才真正寫入資料庫。 立即資料庫更新(Immediate Database Update ):如果交易下達指令執行資料庫更新操作 ,在寫入交易記錄後,不論是否確認交易, 都立即將更新資料寫入資料庫。15-2-2 基於交易記錄的回復處理 投影分頁在執行交易的過程中維護兩份分 頁目錄,一份是目前分

7、頁目錄,一份是投 影分頁目錄,如下圖:15-2-3 投影分頁-基礎 投影分頁的回復處理十分簡單,因為交易 執行過程一直保留兩份分頁目錄,當資料 庫系統故障時,只需使用投影分頁目錄( 一份沒有更改的資料)回存資料庫,就可 以回復到交易前狀態,取消所有的資料更 改。15-2-3 投影分頁-回復處理投影分頁的優點 投影分頁並不需要交易記錄,即不需要記錄管理來 建立交易記錄。 投影分頁回復處理十分直接簡單,如同備份的檔案 ,只需將備份檔案回存即可。 投影分頁的缺點 使用投影分頁執行交易需要複製整個磁碟分頁,十 分浪費系統資源。 確認交易時,所有更新的分頁和分頁目錄都需寫回 資料庫,增加系統的負擔。15

8、-2-3 投影分頁 更新的分頁是儲存在未使用的磁碟分頁,所以會 改變磁碟中儲存的位置,在經過多次交易後,磁 碟分頁將會打散,造成資料儲存的支離破碎。 在每次確認交易後,舊版的分頁就不再使用,這 些磁碟空間可以再收集起來重複使用,所以投影 分頁需要垃圾空間收集機制來有效的使用磁 碟分頁。 投影分頁很難擴充使用在並行執行交易,換句話 說,多個交易並行控制的資料庫系統,很難使用 投影分頁的回復方式。15-2-3 投影分頁-缺點2 交易失敗(Transaction Failure)是在交 易執行的過程中產生錯誤,導致交易無法 執行完成,換句話說,交易並沒有到達確 認交易的狀態。 例如:並行控制的死結或

9、使用者放棄交易等情 況所導致的交易失敗。 對於交易失敗的回復處理,因為資料庫系 統並沒有任何的資料遺失,所以,資料庫 管理系統的回復處理只是讓資料庫回復到 交易前狀態即可。15-3 交易失敗的回復處理-說明延遲資料庫更新的回復處理 如果資料庫管理系統是使用延遲資料庫更 新(Defered Database Update),因為交 易需要到達確認交易,才會將更新資料寫 入資料庫,如果錯誤是發生在確認交易前 ,更新資料根本還沒有寫入資料庫,所以 沒有取消任何操作的需要。15-3 交易失敗的回復處理立即資料庫更新的回復處理 如果資料庫管理系統是使用立即資料庫更 新(Immediate Databas

10、e Update),因為 交易是在尚未確認交易前,就已經立即將 更新的資料寫入資料庫,所以回復處理需 要取消交易已經執行的所有更新操作,即 所謂的UNDO程序,詳細的說明請參閱第 15-4-1節。15-3 交易失敗的回復處理 15-4-1 UNDO/REDO的回復處理 15-4-2 使用檢查點執行回復處理15-4 系統故障的回復處理 系統故障(System Failure)也稱為 軟當機(Soft Crash),這是在停電或斷 電情況下導致的系統當機,因為沒有電源 ,所以電腦主記憶體的內容會因斷電而消 失,影響目前正在執行的交易,和儲存在 工作區和緩衝區的交易資料。 在重新啟動資料庫系統後,回

11、復處理需要 決定取消哪些尚未執行確認交易的交易, 或是已經確認交易,但是尚未寫入資料庫 的交易,這些交易需要重新執行。15-4 系統故障的回復處理-說明 UNDO取消:將交易影響的資料庫資料回復 到執行交易前的狀態,如果使用立即資料庫 更新,因為已經將資料真正寫入資料庫,所 以需要參考交易記錄,一一將更新資料回存 成交易記錄的原始值(Before)。 REDO重作:如果交易已經確認交易,但是尚 未真正寫入資料庫,回復處理需要重新執行 這些交易,將資料庫更新成交易後的狀態, 也就是參考交易記錄,一一將交易更新的所 有資料項目都指定成交易記錄的更新值( After)。15-4 系統故障的回復處理-

12、操作 UNDO/REDO演算法是基於交易記錄的回 復處理(Log-Based Recovery)最常使用 的演算法,可以分為: NO-UNDO/REDO UNDO/NO-REDO UNDO/REDO15-4-1 UNDO/REDO的回復處理延遲資料庫更新的回復處理 如果資料庫管理系統是使用延遲資料庫更新 (Defered Database Update),因為交易需要 到達確認交易狀態,才會將更新資料寫入資 料庫,如果交易錯誤是發生在確認交易前, 更新資料根本還沒有寫入資料庫,所以並不 需要執行UNDO程序。 但是,系統當機有可能是發生在確認交易之 後,而且是在真正寫入資料庫之前,所以需 要執

13、行REDO程序重作這些已經確認交易的 交易,稱為NO-UNDO/REDO演算法。15-4-1 UNDO/REDO的回復處理 例如:資料表Test第1筆記錄的A欄位、第 2筆記錄的B和C欄位初值都是1000,交易 T1和T2的單元操作步驟,如下圖所示:15-4-1 UNDO/REDO的回復處理交易記錄(一) 如果系統當機發生故障時的交易記錄內容: 系統故障 上述交易記錄的交易T1和T2都沒有 記錄,表示交易T1和T2尚 未確認交易,所以沒有REDO程序。15-4-1 UNDO/REDO的回復處理交易記錄(二) 如果系統當機發生故障時的交易記錄內容: 系統故障 REDO交易T1:將Test資料表第

14、1筆記錄的欄 位A改為更新值500,第2筆記錄的欄位B改為 更新值1500。15-4-1 UNDO/REDO的回復處理交易記錄(三) 如果系統當機發生故障時的交易記錄內容,如下所示: 系統故障 REDO交易T1:將Test資料表第1筆記錄的欄位A改為更新值 500,第2筆記錄的欄位B改為更新值1500。 REDO交易T2:將Test資料表第2筆記錄的欄位C改為更新值 700。15-4-1 UNDO/REDO的回復處理立即資料庫更新的回復處理 如果資料庫管理系統是使用立即資料庫更新, 因為交易是立即將更新資料寫入資料庫,第一 種情況是所有的更新操作都在確認交易前寫入 資料庫,如此並不需要REDO

15、程序,回復處理 只需UNDO取消已經執行的所有更新操作,稱 為UNDO/NO-REDO演算法。 另一種情況是允許所有更新操作在寫入資料庫 前,可以執行確認交易,如果已經確認交易, 就需要執行REDO程序,尚未確認交易則是執 行UNDO程序,稱為UNDO/REDO演算法。15-4-1 UNDO/REDO的回復處理交易記錄(一) 系統故障 UNDO交易T1:將Test資料表第1筆記錄的 欄位A回存原始值1000,第2筆記錄的欄位B 回存原始值1000。 UNDO交易T2:將Test資料表第2筆記錄的 欄位C回存原始值1000。15-4-1 UNDO/REDO的回復處理交易記錄(二) 系統故障 RE

16、DO交易T1:將Test資料表第1筆記錄的欄 位A改為更新值500,第2筆記錄的欄位B改為 更新值1500。 UNDO交易T2:將Test資料表第2筆記錄的欄 位C回存原始值1000。15-4-1 UNDO/REDO的回復處理交易記錄(三) 系統故障 REDO交易T1:將Test資料表第1筆記錄的 欄位A改為更新值500,第2筆記錄的欄位B 改為更新值1500。 REDO交易T2:將Test資料表第2筆記錄的 欄位C改為更新值700。15-4-1 UNDO/REDO的回復處理 檢查點(Checkpoint)觀念是另一種 方法來決定系統故障時,受影響的交易範 圍,它是從故障發生的時間點到最近的檢 查點作為一個檢查範圍,找出受影響的交 易,然後決定出哪些交易需要UNDO,哪 些交易需要REDO。15-4-2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号