SQL Server提供的3种恢复模型都是什么? 有什么区别?


Posted in 面试题 onMay 13, 2012
SQL Server提供了3种恢复模型,分别是:

l 简单恢复 ,允许将数据库恢复到最新的备份。

l 完全恢复,允许将数据库恢复到故障点状态。

l 大容量日志记录恢复,允许大容量日志记录操作。

这些模型中的每个都是针对不同的性能、磁盘和磁带空间以及保护数据丢失的需要。例如,当选择恢复模型时,必须考虑下列业务要求之间的权衡:

l 大规模操作的性能(如创建索引或大容量装载)。

l 数据丢失表现(如已提交的事务丢失)。

l 事务日志空间损耗

l 备份和恢复过程的简化。

根据正在执行的操作,可以有多个适合的模型。选择了恢复模型后,设计所需的备份和恢复过程。表6提供了三种恢复模型的优点和含义的概述。

表 6备份模型之间的比较
恢复模型 优点 工作损失表现 能否恢复到即时点?
简单 允许高性能大容量复制操作。

收回日志空间以使空间要求最小。
必须重做自最新的数据库或差异备份后所发生的更改。 可以恢复到任何备份的结尾处。随后必须重做更改。
完全 数据文件丢失或损坏不会导致工作损失。

可以恢复到任意即时点(例如,应用程序或用户错误之前)。
正常情况下没有。

如果日志损坏,则必须重做自最新的日志备份后所发生的更改。
可以恢复到任何即时点。
大容量日志记录的 允许高性能大容量复制操作。大容量操作使用最少的日志空间。 如果日志损坏,或者自最新的日志备份后发生了大容量操作,则必须重做自上次备份后所做的更改。否则不丢失任何工作。 可以恢复到任何备份的结尾处。随后必须重做更改。

简单恢复所需的管理最少。在简单恢复模型中,数据只能恢复到最新的完整数据库备份或差异备份的状态。不使用事务日志备份,而使用最小事务日志空间。一旦不再需要日志空间从服务器故障中恢复,日志空间便可重新使用。与完整模型或大容量日志记录模型相比,简单恢复模型更容易管理,但如果数据文件损坏,则数据损失表现会更高。

完全恢复和大容量日志记录恢复模型为数据提供了最大的保护性。这些模型依靠事务日志提供完全的可恢复性,并防止最大范围的故障情形所造成的工作损失。完全恢复模型提供最大的灵活性,可将数据库恢复到更早的即时点。

大容量日志记录模型为某些大规模操作(如创建索引或大容量复制)提供了更高的性能和更低的日志空间损耗。不过这将牺牲时点恢复的某些灵活性。很多数据库都要经历大容量装载或索引创建的阶段,因此可能希望在大容量日志记录模型和完全恢复模型之间进行切换。

Tags in this post...

面试题 相关文章推荐
如何将整数int转换成字串String
Mar 21 面试题
关于Java String的一道面试题
Sep 29 面试题
金讯Java笔试题目
Jun 18 面试题
经典c++面试题二
Aug 14 面试题
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
Feb 09 面试题
.net笔试题
Mar 03 面试题
简述安装Slackware Linux系统的过程
Jan 12 面试题
设计模式的基本要素是什么
Apr 21 面试题
EJB2和EJB3在架构上的不同点
Sep 29 面试题
异步传递消息系统的作用
May 01 面试题
How to spawning asynchronous work in J2EE
Aug 29 面试题
类的返射机制中的包及核心类
Sep 12 面试题
数据库面试要点基本概念
Oct 31 #面试题
如何在存储过程中使用Loop
Jan 05 #面试题
SQL Server笔试题
Jan 10 #面试题
Android面试题附答案
Dec 08 #面试题
Android面试题及答案
Sep 04 #面试题
android面试问题与答案
Dec 27 #面试题
Android笔试题总结
Nov 29 #面试题
You might like
php 远程关机操作的代码
2008/12/05 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
python实现跨文件全局变量的方法
2014/07/07 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
python下MySQLdb用法实例分析
2015/06/08 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python目录和文件处理总结详解
2019/09/02 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
python 装饰器的使用示例
2020/10/10 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
js 数组 fill() 填充方法
2021/11/02 Javascript
python多线程方法详解
2022/01/18 Python