資料庫系統概述之資料庫恢復技術
第十章 資料庫恢復技術
1.事務
事務是使用者定義的一個數據庫操作序列,這些操作要麼全做要麼全部做,是一個不可分割的工作單位。
2.COMMIT和ROLLBACK
COMMIT表示提交,即提交事務的所有操作,將事務中所有對資料庫的更新寫回到磁碟上的物理資料庫中去。
ROLLBACK表示回滾,即在事務執行的過程中發生了某種故障,事務不能繼續執行,系統將事務中對資料庫的所有已完成的操作全部撤銷,回滾到事務開始時的狀態。
3.事務的ACID特性
原子性(Atomicity):要麼全做,要麼全部做
一致性(Consistency):從一個一致性狀態到另一個一致性狀態
隔離性(Isolation):一個事務的執行不能被其他事務干擾
持續性(Durability):事務一旦提交,改變是永久的
4.事務故障的種類
事務內部的故障(系統做撤銷操作);
系統故障(對未完事務做撤銷操作,對已完成的事務做重做操作)
介質故障(DBA介入,重做最近轉儲的資料庫副本和日誌檔案副本,重做已完成的事務)
5.建立冗餘資料的技術
資料轉儲和登記日誌檔案
6.資料轉儲
資料轉儲即資料庫管理員定期將整個資料庫複製到磁帶、磁碟或其他儲存介質上儲存起來的過程。這些備用的資料稱為後備副本。當資料庫遭到破壞後可以將後備副本重新裝入,但重灌後的副本只能將資料庫恢復到轉儲時的狀態。
轉儲可分為靜態轉儲和動態轉儲。靜態轉儲時在系統中無執行事務時進行的轉儲操作。即轉儲操作開始的時刻資料庫處於一致狀態,而轉儲期間不允許(或)不存在對資料庫的任何存取、修改活動。顯然,靜態轉儲得到的一定是一個數據一致性的副本。動態轉儲時指轉儲期間允許對資料庫進行存取或修改。即轉儲和使用者事務可以併發執行。
資料轉儲方法可以分為4類:動態海量轉儲、動態增量轉儲、靜態海量轉儲、靜態增量轉儲。
7.日誌檔案
日誌檔案是用來記錄事務對資料庫的更新操作的檔案。
日誌檔案的作用:日誌檔案在資料庫恢復中起著非常重要的作用,可以用來進行事務故障恢復和系統故障恢復,並協助後備副本進行介質故障恢復。具體作用有:
a.事務故障恢復和系統故障恢復必須用日誌檔案
b.在動態轉儲方式中必須建立日誌檔案,後備副本和日誌檔案結合起來才能有效地恢復資料庫
c.在靜態轉儲方式中也可以建立日誌檔案,當資料庫毀壞後可重新裝入後援副本,把資料庫恢復到轉儲結束時刻的正確狀態,然後利用日誌檔案把已完成的事務進行重做處理,對故障發生時尚未完成的事務進行撤銷處理。
登記日誌檔案必須遵循的兩條原則:
a.登記的次序嚴格按併發事務執行的時間次序
b.必須先寫日誌檔案,後寫資料庫
8.登記日誌檔案時為什麼必須先寫日誌檔案,後寫資料庫
a.寫資料庫和寫日誌檔案時兩個不同的操作;
b.在這兩個操作之間可能發生故障;
c.如果先寫資料庫修改,而在日誌檔案沒有登記這個修改,則以後就無法恢復這個修改操作。
d.如果先寫日誌檔案,但沒有修改資料庫,按日誌檔案恢復時,只不過是多執行了一次不必要的UNDO操作,並不影響資料庫的正確性。
9.針對不同的故障,給出恢復的策略和方法
發生事務故障時,系統做撤銷操作;
發生系統故障時,對未完成事務做撤銷操作,對已完成的事務重做
發生介質故障時,需要DBA介入,重做最近轉儲的資料庫副本和日誌檔案時,重做已完成的事務。