SQL Server 数据库三种恢复模式区别
- SQL Server
- 2021-12-09
- 16热度
- 0评论

1、Simple 简单恢复模式:
Simple 模式的旧称叫“Checkpoint with truncate log”,其实这个名字更形象,在 Simple 模式下,SQL Server 会在每次 checkpoint 或 backup 之后自动截断 log,也就是丢弃所有的 inactive log records,仅保留用于实例启动时自动发生的 instance recovery 所需的少量 log,这样做的好处是 log 文件非常小,但坏处也是显而易见的,就是一旦数据库出现异常,需要恢复时,最多只能恢复到上一次的备份,无法恢复到最近可用状态,因为 log 丢失了。Simple 模式主要用于非关键业务,比如开发库和测试库。
如果需要压缩数据库日志(Shrink语句),将数据库模式切换到简单恢复模式后压缩率才是最高的,如果你的数据库在完整恢复模式或大容量日志恢复模式下采用日志压缩,压缩后的日志大小并不会很理想。
2、Full 完整恢复模式:
和 Simple 模式相反,Full 模式的旧称叫“Checkpoint without truncate log”,也就是 SQL Server 不主动截断 log,只有备份 log 之后,才可以截断 log,否则 log 文件会一直增大,直到撑爆硬盘。Full 的好处是可以做 point-in-time 恢复,最大限度的保证数据不丢失,一般用于关键业务环境里。
3、Bulk-logged 大容量日志恢复:
Bulk-logged 模式和 full 模式类似,唯一的不同是针对以下 Bulk 操作,会产生尽量少的log:
1) Bulk load operations (bcp and BULK INSERT)。
2) SELECT INTO。
3) Create/drop/rebuild index。
众所周知,通常 bulk 操作会产生大量的 log,对 SQL Server 的性能有较大影响,bulk-logged 模式的作用就在于降低这种性能影响,并防止 log 文件过分增长,但是它的问题是无法 point-in-time 恢复到包含 bulk-logged record 的这段时间。 Bulk-logged模式的最佳实践方案是在做 bulk 操作之前切换到 bulk-logged,在 bulk 操作结束之后马上切换回full模式。

鲁ICP备19063141号
鲁公网安备 37010302000824号