復原模式(Recovery Model)旨在控制交易記錄維護。復原模式說明了工作丟失的風險,能否恢複到時點?
SQL Server資料庫有三種復原模式:簡單復原模式、完整復原模式和大量記錄復原模式。
相對於簡單復原模式而言,完整復原模式和大量記錄復原模式提供了更強的資料保護功能。這些復原模式都是基於備份交易記錄來提供完整的可恢複性及在最大範圍的故障情形內防止丟失工作。通常,資料庫使用完整復原模式或簡單復原模式。
下面對三種復原模式做一個比較:
復原模式 |
記錄備份 |
復原點 |
優點 |
缺點 |
解決方案及建議 |
簡單(Simple) |
無記錄備份。 自動回收日誌空間以減少空間需求,實際上不再需要管理交易記錄空間。 |
最新備份之後的更改不受保護。在發生災難時,這些更改必須重做。只能恢複到備份的結尾。 |
簡單復原模式可最大程度地減少交易記錄的管理開銷,因為不備份交易記錄。 |
如果資料庫損壞,則簡單復原模式將面臨極大的工作丟失風險。資料只能恢複到已遺失資料的最新備份。 |
在簡單復原模式下,備份間隔應儘可能短,以防止大量遺失資料。簡單復原模式並不適合生產系統,因為對生產系統而言,丟失最新的更改是無法接受的。在這種情況下,我們建議使用完整復原模式。 |
完整(Full) |
需要記錄備份。 |
理論上可以恢複到任意時點。 |
資料檔案丟失或損壞不會導致丟失工作。 |
此模式完整記錄所有事務,佔用大量空間。 |
|
大容量(Bulk-logged) |
需要記錄備份。 |
如果在最新記錄備份後發生日誌損壞或執行大容量日誌記錄操作,則必須重做自該上次備份之後所做的更改。 可以恢複到任何備份的結尾。不支援時間點復原。 |
該模式是完整復原模式的附加模式,允許執行高效能的大量複製操作。通過使用最小方式記錄大多數大容量操作,減少日誌空間使用量。 |
比完整模式節省日誌儲存空間。 |
對於某些大規模大容量操作(如大容量匯入或索引建立),暫時切換到大量記錄復原模式可提高效能並減少日誌空間使用量。由於大量記錄復原模式不支援時間點復原,因此必須在增大記錄備份與增加工作丟失風險之間進行權衡。 |
注意:
1. 適合於資料庫的復原模式取決於資料庫的可用性和恢複要求。
2. 在完整復原模式和大量記錄復原模式下,必須進行記錄備份。如果不想進行記錄備份,則請使用簡單復原模式。