SQLServer数据库有三种恢复模式:简单恢复模式、完整恢复模
式和⼤容量⽇志恢复模式
SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和⼤容量⽇志恢复模式:
1.Simple 简单恢复模式,
Simple模式的旧称叫”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后⾃动截断log,也就是丢弃所有的inactive log records,仅保留⽤于实例启动时⾃动发⽣的instance recovery所需的少量log,这样做的好处是log⽂件⾮常⼩,不需要DBA去维护、备份log,但坏处也是显⽽易见的,就是⼀旦数据库出现异常,需要恢复时,最多只能恢复到上⼀次的备份,⽆法恢复到最近可⽤状态,因为log丢失了。 Simple模式主要⽤于⾮critical的业务,⽐如开发库和测试库,但是道富这边的SQL Server(即使是⽣产库)⼤都采⽤Simple模式,是因为这边的SQL Server⼤都⽤于⾮critical的业务(critical的数据库⼤都采⽤Oracle和
sql数据库备份文件DB2),可以忍受少于1天的数据丢失(我们的job每天都会定时备份全库)。
如果需要压缩数据库⽇志(Shrink语句),将数据库模式切换到简单恢复模式后压缩率才是最⾼的,如果你的数据库在完整恢复模式或⼤容量⽇志回复模式下采⽤⽇志压缩,压缩后的⽇志⼤⼩并不会很理想。
2.Full 完整恢复模式,
和Simple模式相反,Full模式的旧称叫”Checkpoint without truncate log“,也就是SQL Server不主动截断log,只有备份log之后,才可以截断log,否则log⽂件会⼀直增⼤,直到撑爆硬盘,因此需要部署⼀个job定时备份log。Full的好处是可以做point-in-time恢复,最⼤限度的保证数据不丢失,⼀般⽤于critical的业务环境⾥。缺点就是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模式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论