恢复模式(Recovery Model)旨在控制事务日志维护。恢复模式说明了工作丢失的风险,能否恢复到时点?
SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。
相对于简单恢复模式而言,完整恢复模式和大容量日志恢复模式提供了更强的数据保护功能。这些恢复模式都是基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢失工作。通常,数据库使用完整恢复模式或简单恢复模式。
下面对三种恢复模式做一个比较:
恢复模式
日志备份
恢复点
优点
缺点
解决方案及建议
简单(Simple)
无日志备份。
自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。
最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。只能恢复到备份的结尾。
简单恢复模式可最大程度地减少事务日志的管理开销,因为不备份事务日志。
如果数据库损坏,则简单恢复模式将面临极大的工作丢失风险。数据只能恢复到已丢失数据的最新备份。
在简单恢复模式下,备份间隔应尽可能短,以防止大量丢失数据。简单恢复模式并不适合生产系统,因为对生产系统而言,丢失最新的更改是无法接受的。在这种情况下,我们建议使用完整恢复模式。
完整(Full)
需要日志备份。
理论上可以恢复到任意时点。
数据文件丢失或损坏不会导致丢失工作。
此模式完整记录所有事务,占用大量空间。
大容量(Bulk-logged)
需要日志备份。
如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。 可以恢复到任何备份的结尾。不支持时点恢复。
该模式是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。
比完整模式节省日志存储空间。
对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提高性能并减少日志空间使用量。由于大容量日志恢复模式不支持时点恢复,因此必须在增大日志备份与增加工作丢失风险之间进行权衡。
注意:
1. 适合于数据库的恢复模式取决于数据库的可用性和恢复要求。
2. 在完整恢复模式和大容量日志恢复模式下,必须进行日志备份。如果不想进行日志备份,则请使用简单恢复模式。