數據庫管理之數據庫的恢復

1、 數據庫的恢復定義
       系統能把數據庫從被破壞、不正確的狀態,恢復到最近一個正確的狀態,就是數據庫的可恢復性。主要由DBMS的恢復管理子系統採取一系列措施保證在任何情況下保持食物的原子性、持久性,確保數據部丟失,不破壞。

2、 數據庫恢復的策略

a)平時做好兩件事,轉儲和建立日誌

i. 週期地對整個數據庫進行拷貝,轉儲到另一個磁盤或磁帶一類存儲介質中
ii. 建立日誌數據庫

b) 一旦發生數據庫故障,分兩種情況處理

i.如果數據庫未遭到物理性破壞,只是數據不一致,此時只要利用日誌庫撤銷所有不可靠的修改,再利用重做功能,把數據庫恢復到正確狀態;
ii.如果數據庫遭到物理性破壞,必須裝入最近一次拷貝的數據庫備份到新的磁盤,然後利用日誌庫執行重做已提交的事務,把數據庫恢復。

3、 數據庫的常見故障

a)事務故障(由系統完成)

i.可以預期的事務故障,即在程序中可以預先估計到的錯誤,解決方法:在事務代碼中加入rollback語句
ii.非預期的事務故障,即在程序中發生的未估計到的錯誤,解決方法:由系統直接對事務執行撤銷操作

b)系統故障(由系統完成),也稱爲軟故障

i.引起系統停止運轉隨之要求重新啓動的事件稱爲系統故障。
解決方法:重啓之後對未完成事務做撤銷處理,對已提交事務但更新還留在緩衝區的事務進行重做處理

c)介質故障(由DBA完成),也稱爲硬故障

i.在發生介質故障或遭受病毒破壞時,磁盤上的物理數據遭到毀滅性破壞。
解決方法:重裝最近轉儲的後備副本到新的磁盤,使數據庫恢復到轉儲時的一致狀態,在日誌中找出最近轉儲以後所有已提交的事務,對這些已提交的事務進行重做處理,將數據庫恢復到某一時的一致狀態。

4、 檢查點技術
在DBS運行時,DBMS定時設置檢查點,在檢查點時候才真正做到把對DB的修改寫到磁盤,並在日誌文件上寫入一條檢查點記錄。數據庫中重做,撤銷處理,實際上是採用檢查點方法實現的,大多數DBMS都提供這種技術。一般DBMS產品自動實行檢查點操作,無須人工干預。恢復算法:

a)根據日誌文件建立事務重做隊列和事務撤銷隊列

i. 從頭掃描日誌文件,找出故障中已提交的事務,標識爲重做隊列
ii.從頭掃描日誌文件,找出故障中未提交的事務,標識爲撤銷隊列

b) 對重做隊列進行REDO處理,對撤銷隊列進行UNDO處理

i.正向掃描日誌文件,根據重做隊列,對每個事務執行REDO
ii.反向掃描日誌文件,根據撤銷隊列,對每個事務執行UNDO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章