点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!
概述:恢复模式旨在控制事务日志维护。有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。通常,数据库使用完整恢复模式或简单恢复模式。
图文查看:可使用SQL Server Management Studio工具,选择相应的数据库,右键属性查看具体的数据库恢复模式,如下图所示:
下表概述了这三种恢复模式的基本信息情况供参考:
1、Simple 简单恢复模式
简单恢复模式可最大程度地减少事务日志的管理开销,因为不备份事务日志。如果数据库损坏,则简单恢复模式将面临极大的工作丢失风险。数据只能恢复到已丢失数据的最新备份。因此,在简单恢复模式下,备份间隔应尽可能短,以防止大量丢失数据。但是,间隔的长度应该足以避免备份开销影响生产工作。在备份策略中加入差异备份可有助于减少开销。
Simple模式的旧称叫”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的inactive log records,仅保留用于实例启动时自动发生的instance recovery所需的少量log,这样做的好处是log文件非常小,不需要DBA去维护、备份log,但坏处也是显而易见的,就是一旦数据库出现异常,需要恢复时,最多只能恢复到上一次的备份,无法恢复到最近可用状态,因为log丢失了。
相对于简单恢复模式而言,完整恢复模式和大容量日志恢复模式提供了更强的数据保护功能。这些恢复模式基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢失工作。
为需要事务持久性的数据库提供了常规数据库维护模式。
需要日志备份。此模式完整记录所有事务,并将事务日志记录保留到对其备份完毕为止。如果能够在出现故障后备份日志尾部,则可以使用完整恢复模式将数据库恢复到故障点。完整恢复模式也支持还原单个数据页。
通俗的讲
和Simple模式相反,Full模式的旧称叫”Checkpoint without truncate log“,也就是SQL Server不主动截断log,只有备份log之后,才可以截断log,否则log文件会一直增大,直到撑爆硬盘,因此需要部署一个job定时备份log。Full的好处是可以做point-in-time恢复,最大限度的保证数据不丢失。缺点就是DBA需要维护log,增加人员成本(其实也就是多了定时备份log这项工作而已)。
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模式。
重要提示:在完整恢复模式和大容量日志恢复模式下,必须进行日志备份。如果不想进行日志备份,则请使用简单恢复模式。
历史文章参考:
教你 SQL Server 如何设置数据库自动备份及备份定期删除计划,图文详解奉上!
参考资料来源:https://www.cnblogs.com/KJXY/articles/15796744.html
点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。
动动小手点击加关注呦☟☟☟