前言
資料庫故障恢復就是把資料庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為一致狀態或完整狀態)。
一、故障的種類
1、事務故障
- 邏輯故障,例如:除以0;
- 餘額不允許為負。
2、系統崩潰故障
- 停電、硬體故障,藍屏宕機故障。
3、磁碟故障
- 分為資料庫磁碟故障和日誌磁碟故障。
4、災難故障
- 例如:**,火災等不可抗因素。
二、故障恢復方法
主要講述常用的日誌方法,分頁方法因為很少使用,有興趣可以自行查閱資料。
1、事務故障的恢復:撤消事務(undo)
具體方法:
(1). 反向掃瞄檔案日誌(即從最後向前掃瞄日誌檔案),查詢該事務的更新操作。
(2). 對該事務的更新操作執行逆操作。即將日誌記錄中「更新前的值」 寫入資料庫。
插入操作, 「更新前的值」為空,則相當於做刪除操作
刪除操作,「更新後的值」為空,則相當於做插入操作
若是修改操作,則相當於用修改前值代替修改後值
(3). 繼續反向掃瞄日誌檔案,查詢該事務的其他更新操作,並做同樣處理。
(4). 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。
2、系統崩潰故障的恢復
發生系統故障時,事務未提交
恢復策略:強行撤消(undo)所有未完成事務
發生系統故障時,事務已提交,但緩衝區中的資訊尚未完全寫回到磁碟上。
恢復策略:重做(redo)所有已提交的事務
具體方法:
重啟資料庫管理系統;從日誌磁碟讀取日誌檔案;反向掃瞄日誌,也就是從日誌檔案的結束位置開始後向掃瞄。當發現乙個事務在日誌記錄中沒有 記錄時,執行undo( ti) 操作,使用舊值恢復資料項: 然後從日誌檔案的開始位置順向掃瞄。對日誌記錄中含有的事務,執行redo( ti) 操作,使用新值恢復資料項;
新的問題來了,執行日誌保留了若干天的記錄,掃瞄整個日誌檔案很費時,如何解決?
解決方法
週期性的做檢查點(checkpointing)
更詳細講解請跳轉至
資料庫故障恢復
3、磁碟(介質)故障的恢復
資料庫磁碟故障,把dump的備份資料庫檔案拷貝到新的資料庫磁碟上;從日誌檔案的末尾逆向掃瞄直至記錄,再順向掃瞄日誌記錄,對有日誌記錄的事務做redo(ti)操作。
日誌磁碟故障:不再接收事務請求,讓當前的所有活動事務執行完畢;輸出資料庫緩衝區中的緩衝資料到資料庫磁碟中(即checkpoint);執行dump操作,把磁碟中的資料庫檔案拷貝到另乙個磁碟上;更換日誌磁碟。
4、災難故障的恢復:遠端備份
三、小結
事務故障的恢復
undo系統故障的恢復
undo + redo介質故障的恢復
重灌備份並恢復到一致性狀態 + redo災難故障的恢復
遠端備份
資料庫恢復技術
資料庫恢復技術 故障種類 1.事務故障 某個事務在執行過程中由於種種原因未執行至正常終止點就夭折了 事務故障的恢復 1 對於可預見的錯誤,由事務程式來處理 2 對於不可預見的錯誤,由dbms強行回滾該事務 2.系統故障 整個系統的正常執行突然被破壞,所有正在執行的事務都非正常終止,記憶體中資料緩衝區...
資料庫恢復技術
事務的acid特性 資料庫系統故障的型別 事務故障 系統故障和介質故障影響事務的正常執行 介質故障和計算機病毒破壞資料 庫資料。各個子系統的er圖之間的衝突 在dbms中實現事務永續性的子系統是恢復管理子系統。後援副本的作用是故障後的恢復。事務日誌用於儲存對資料的更新操作。資料庫恢復的基礎是利用轉儲...
資料庫 資料庫恢復技術
1.事務 使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全部不做,是乙個不可分割的工作單位 2.事務的特性 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability 原子性 要麼全做,要麼全不做 一致性 事務的執行結果必須是使資料庫從...