1. 程式人生 > >《資料庫系統概論》知識點總結 第十章

《資料庫系統概論》知識點總結 第十章

第十章 資料庫恢復技術

1.事務:是使用者定義的一個數據庫操作序列,對於這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。

2.事務的屬性COMMIT:表示提交,一次提交所有的事務,即將事務中所有對資料庫的更新都寫回到磁碟上;

ROLLBACK:如果事務執行中途中斷了,那麼將會恢復之前對資料庫的操作

3.事務的ACID特性:原子性(Atomicity),一致性(Consistency),隔離性(Isolation),持續性(Durability)。

4.事務故障分類:

1)事務內部故障

BEGIN TRANSACTION
    讀取賬戶甲的餘額BALANCE;
    BALANCE=BALANCE-AMOUNT;
    IF(BALANCE<0)THEN
        {列印‘餘額不足,不能轉賬’;
         ROLLBACK;}
    ELSE{
        讀賬戶乙的餘額BALANCE1;
        BALANCE1=BALANCE1+AMOUNT;
        寫回BALANCE1;
        COMMIT;}

2)系統故障:造成系統停止運轉的任何事件,使得系統要重新啟動。

3)介質故障:比如儲存介質的故障

4)計算機病毒

5.恢復的實現技術:

1)資料轉存:靜態轉存(系統在無事務時進行轉儲操作);動態轉存(轉儲期間允許資料庫進行存取或者修改);海量轉儲(每次轉儲全部的資料庫);增量轉儲(每次只轉儲上一次轉儲後更新過的資料),他們可以進行組合。這些策略可以組合起來使用,比如一天進行一次增量動態轉儲,一週進行一次海量靜態轉儲。

2)登記日誌檔案

6.資料庫的恢復策略:

1)事務故障的恢復:反向查日誌,將更新記錄進行UNDO(撤銷處理),比如我在某時某刻update了Grade,那麼在恢復的時候就要將update後的值變為update之前的值

2)系統故障的恢復:正向查日誌,對於有開始沒有COMMIT的事務進行REDO(重做)處理,對於有開始也有OMMIT的事務先進行UNDO,然後再進行REDO。

3)介質故障的恢復:重灌資料庫,然後重做已完成的事務

7.檢查點(checkpoint):與遊戲裡面類似,就是週期性地將之前完成的事務進行存檔,具體步驟是:

1)將當前日誌緩衝區中所有的日誌記錄寫入磁碟的日誌檔案中

2)在日誌檔案中寫入一個檢查點

3)把當前資料緩衝區的所有資料記錄寫入磁碟的資料庫中  (這裡面的相關事務都不需要REDO了)

4)把檢查點記錄在日誌檔案中的地址寫入一個重新開始檔案(注意這裡不是日誌檔案,而是另一個檔案,並且對於檢查點的檢查是以這個檔案為標準的)

8.系統在有檢查點時的恢復策略:

1)對於在檢查點之前就完成的事務不需要REDO

2)對於檢查點前開始,故障點前結束的事務,他們的資料可能還在資料緩衝區中,所以要REDO

3)對於檢查點之後開始,故障點之前結束的事務,也要REDO,原因同上

4)對於故障點之後沒有提交的事務要進行UNDO(UNDO到事務開始的地方)然後再REDO