認識SQL Server2000 三種恢復模式

tolywang發表於2008-09-18


1  ,Simple Recovery 模式
           Simple Recovery(簡單恢復)模式是最容易實現的恢復模式,這種恢復模式本質上與在 SQL Server 7.0 中選擇 trunc.log on checkpoint 選項相同。Simple Recovery 模式定期截斷事務日誌,刪除已經被提交的所有事務。因為日誌經常被截斷,所以不能備份。這就使得備份策略只能採用完全備份和差異備份。如果資料庫已經配置為 Simple Recovery 模式,那麼在試圖執行事務日誌備份時將接收到錯誤:
Server: Msg 4208, Level 16, State 1, Line 1 The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE. Server: Msg 3013, Level 16, State 1, Line 1 BACKUP LOG is terminating abnormally.
這種模式極其適合只在夜晚執行備份的那些資料庫,或者白天透過差異備份完成備份的那些資料庫。通常這種模式可以滿足大多數開發資料庫。然而使用這個選項意味著不能實現精確到時間點的恢復,而產品可能要求這種恢復。由於事務日誌被截斷和重用,因此應釋放事務日誌所佔用的空間和管理這些備份的維護開銷。
說明:
       SQL Server Personal Edition 和 SQL Server Desktop Engine的預設恢復模式是這種模式。

2  , Full Recovery 模式
Full Recovery(完全恢復)模式將丟失資料的可能降至最低,但是增加管理開銷和空間開銷。在這種模式中,SQL Server 記錄所有的操作,其中包括透過類似 bcp 和 BULK INSERT 的批操作寫行。若採用 Full Recovery 模式,只要執行正常的事務日誌備份就可以恢復到任何時間點。應切記,在快速 OLTP 環境中如果選擇該選項,則事務日誌和日誌備份將快速增長。


說明:
       Full Recovery模式是SQL Server Standard Edition和SQL Server Enterprise Edit的預設恢復模式。


說明:
       Full Recovery模式同時記錄所有的CREATE INDEX命令。SQL Server 7.0僅記錄索引被建立的事實,而不記錄實際的索引。在SQL Server 2000中,記錄實際索引,這意味著透過事務日誌備份恢復資料庫之後不必重建索引。

3  , Bulk Recovery 模式
Bulk-Logged Recovery 模式被設計為 Full Recovery 模式的折衷。與 Full Recovery模式相比,這種模式提供較好的效能和空間的利用率。這是因為當啟用此恢復模式的資料庫出現批操作時,SQL Server 僅僅記錄該批操作發生的事實及其發生的範圍。由於批操作的記錄不完全,因此事務日誌將比 Full Recovery 模式的事務日誌小很多。 因為記錄發生批操作的範圍,所以如果定期執行事務日誌備份,則可以將資料庫恢復到給定時間點。折衷的方案是在備份事務日誌時,除事務日誌以外還必須備份資料改變的範圍。這意味著事務日誌備份將變得很大,並且花費的時間更長。


說明:
    在 Bulk-Logged Recovery 模式事務日誌的恢復與 Full 模式一致。在這種模式中恢復事務日誌時,無須重新執行搜尋改變範圍的過程。

4 ,  恢復選項 
如果需要恢復設定為 Simple Recovery 模式的資料庫,只需恢復資料庫最近一次的全備份。如果需要恢復一設定為 Full 或 Bulk 模式的資料庫,則不但需要恢復資料庫最近一次的全備份,還要運用最後一次的差異備份以及最終的事務日誌備份。使用最終的事務日誌備份可以指定一個精確的時間點恢復。


提示:    如果關心資料庫是否能恢復到指定時間點,則開發資料庫採用 Full 或 Bulk-Logged Recovery 模式。在極少數非這種情形的例項中,可以使用完全備份。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-506565/,如需轉載,請註明出處,否則將追究法律責任。

相關文章