天天看點

資料庫_資料庫恢複技術

1.沒錯 ,又到了資料庫的考試,我需要總結一下資料庫的知識了。

2.首先是資料庫的恢複技術。這裡面有一個很重要的東西,也是關系型資料庫與其他資料庫重大的差別所在。

(1)事務:事務通俗的來講就是使用者定義的一系列操作,但是這些操作有着十分明顯的特點,就是十分的團結。說的其實這些操作是一個整體,要麼全做要麼全部不做。再SQL中定義事務的語句一般有3條:

BEGIN  TRANSACTION
                            COMMIT
                            ROLLBACK      

一個事務通常都是以BEGIN TRANSACTION開始,結果有兩種,要麼成功的COMMIT要麼就是失敗ROLLBACK。其中COMMIT就是送出,也就是說更新資料,而ROLLBACK恰恰相反,它表示事務再執行的過程中可能遇到了某種故障,無法繼續執行,是以復原,撤銷之前的所有的資料的操縱。

(2)事務的特點:ACID四大特性。

A(Atomicity)原子性:說的就是事務是一個整體,要麼全做要麼全部不做。

C(Consistency)一緻性:說的就是操作的資料前後要保持一緻,比如經典的銀行轉賬的例子:A轉B1W,那麼A賬戶減少1W,B增加1W二者的總和不變。這就是一緻性的含義。

I(Isolation)隔離性一個事務不被其他事務幹擾,也就是說目前的事務操作資料時,其他事務不能夠修改這些資料。這個我們後邊再說,關于事務的并發控制,是一個很重要的話題。

D(Durability)持續性,事務送出之後,他對資料庫中的資料的改變就是永久的。

3.事務的這四大特征十分的重要。事務時資料恢複和并發控制的基本機關。但是事務的者四個特性不一定每次執行都可以得到保持一般來說破壞事務的ACID特性的有兩個大的方面:

(1)多個事務并行運作,不同的事務交叉運作

(2)事務運作過程中被強制的停止。

4.資料庫故障的種類

(1)事務内部故障:事務内部故障其實就是我們剛才說的,事務沒有到達預期的預期的終點,中間就中斷了執行,那麼事務執行復原的操作,撤銷剛才執行的效果。

(2)系統故障:指的就是任何造成系統停止運轉的事件,使得系統需要重新啟動。這個時候,丢失資料最嚴重的是在緩存區,發生這類事件的時候,需要再系統重新啟動的時候實作對事務的強行復原。

(3)媒體故障:硬體上面的故障,這個無法避免,但是發生的機率很小。

(4)計算機病毒。這個應該都聽說過一點,就是使用程式惡意的破壞資料庫中的内容。

5.資料庫的恢複

資料庫的恢複有很多實作的方法,一般的通用的是:資料的轉儲和登記日志檔案。

資料轉儲:其實就是一個備份的意思。DBA定期的将資料複制到其他的磁盤上,分為動态的和靜态的。二者的差別就是資料庫的狀态不同,靜态的指的是資料庫此時沒有資料的修改,動态的相反,這裡我們就不在深入這個問題。

日志檔案:其實就是事務的記事本。用來記錄事務對資料庫的更新操作。也是分為兩大類:

(1)以記錄為機關的日志檔案:日志檔案需要登記的内容是

          各個事務的開始标記

           各個事務的結束标記

           各個事務的更新操作。

(2)以資料塊為機關的日志檔案。事務包括事務辨別和被修改的資料塊。

為了保證資料庫是可以恢複的,登記日志檔案的時候必須包含兩條規則:

(1)登記的次序嚴格的按照并發事務執行的事件次序

(2)必須先寫日志檔案,後寫資料庫。

那麼一旦事務發生故障了,一個通過日志檔案恢複的政策就是

(1)反向掃描這個日志檔案,查找這個事務的更新

(2)對該事務的更新做一個逆操作。

(3)繼續反向的掃描