SQL Server恢复模式

SQL Server 提供三种可供选择的恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。

恢复模式是一个数据库属性,它用于控制数据库备份和还原操作基本行为。为每个数据库选择最佳恢复模式是计划备份和还原策略的必要部分。

 

查看恢复模式:
  1.展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。
  2.右键单击该数据库,再单击“属性”,这将打开“数据库属性”对话框。
  3.在“选择页”窗格中,单击“选项”。
  4.当前恢复模式显示在“恢复模式”列表框中。
  5.也可以从列表中选择不同的模式来更改恢复模式。可以选择“完整”、“大容量日志”或“简单”。
  
简单恢复模式
 特点:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。


 工作丢失的风险 :最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。


 能否恢复到时点:只能恢复到备份的结尾


 降低工作丢失风险:不影响备份管理的前提下时常备份,以免丢失大量数据。


 适用范围(符合下列所有要求):
  1.不需要故障点恢复。如果数据库丢失或损坏,则会丢失自上一次备份到故障发生之间的所有更新,但您愿意接受这个损失。
  2.您愿意承担丢失日志中某些数据的风险。
  3.您不希望备份和还原事务日志,希望只依靠完整备份和差异备份。

 

完整恢复模式
 特点:需要日志备份。数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时点(例如应用程序或用户错误之前)。

 工作丢失的风险:正常情况下没有。如果日志尾部损坏,则必须重做自最新日志备份之后所做的更改。
 

能否恢复到时点:果备份在接近特定的时点完成,则可以恢复到该时点。
 

时点恢复:出现故障后,可以尝试备份“日志尾部”(尚未备份的日志)。如果结尾日志备份成功,则可以通过将数据库还原到故障点来避免任何工作丢失。
 

缺点:使用日志备份的缺点是它们需要使用存储空间并会增加还原时间和复杂性。

 一般的备份策略:
  1.首先完整备份数据库以及日志备份.
  2.在日志备份后的某个时间,数据库发生错误.接下来 先备份活动日志
  3.然后还原完整数据库备份和日志备份,但是不恢复数据库;
  4.还原并恢复结尾日志备份。这样就完成了恢复待故障点,恢复了所有数据.


 降低工作丢失风险:建议经常执行日志备份,以将工作丢失的风险限定在业务要求所允许的范围内。


 适用范围(符合下列任一要求):
  1.您必须能够恢复所有数据
  2.数据库包含多个文件组,并且您希望逐段还原读/写辅助文件组(以及可选地还原只读文件组)。
  3.您必须能够恢复到故障点
  4.您希望可以还原单个页
  5.您愿意承担事务日志备份的管理开销。

 

大容量日志会恢复
 特点:需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。


 工作丢失的风险:如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改,否则不丢失任何工作。

 能否恢复到时点:可以恢复到任何备份的结尾。不支持时点恢复。


 切换到该模式的必要性:对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提高性能并减少日志空间使用量。仍需要日志备份。
 

何时使用大容量日志恢复模式:仅在运行大规模大容量操作期间以及在不需要数据库的时点恢复时使用该模式。
                                             建议在其余时间使用完整恢复模式。当完成一组大容量操作后,我们建议您立即切换回完整恢复模式。

 

各个模式之间的切换:
  1.从简单恢复模式切换到完整恢复模式:
   a.完成到完整恢复模式或大容量日志恢复模式的切换之后,立即进行完整数据库备份或差异数据库备份以启动日志链。
   b.计划常规日志备份并相应地更新还原计划。

  2.从完整恢复模式或大容量日志恢复模式切换到简单恢复模式:
   需要中断备份日志链。因此,极力建议您在切换之前备份日志,这样可允许您将数据库恢复到该点。


  3.在完整恢复和大容量日志恢复之间切换:
   a.在切换到大容量日志恢复模式之前,先备份日志。
   b.执行大容量操作之后,立即切换回完整恢复模式。
   c.切换回完整恢复模式之后,再次备份日志.
   
具体切换的语句:
 将数据库设置为完整恢复模式:
  USE master;
  ALTER DATABASE database_name SET RECOVERY FULL;
 将数据库设置为大容量日志恢复模式:
  USE master;
  ALTER DATABASE database_name SET RECOVERY BULK_LOGGED;

posted @ 2013-02-24 19:01  金虹巴巴  阅读(1018)  评论(0编辑  收藏  举报