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