当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 专家在线:SQL Server块日志恢复

MSSQL
SQL Server--全文本检索的应用(一)
SQL 2005的SSIS与Oracle的迁移性能
SQL优化实例:从运行30分钟到运行只要30秒
无法在SQL Server2005 Manger Studio 中录入中文的问题
SQL Artisan多表查询和统计
SQL Server数据库开发人员在应聘时经常被问到哪些问题
一个完整的SQL SERVER数据库全文索引的示例
SQL Server安全之加密术和SQL注入攻击
如何对SQL Server中的tempdb“减肥”
SQL Server 2005升级的十个步骤
如何在SQL Server开发中融入极限编程技术
SQL Server应用程序高级SQL注入(下)
SQL Server应用程序高级SQL注入(上)
SQL Server连接中的常见错误
IIS中SQL Server数据库的安全问题
SQL Server 2005区域配置和安全工具
保护 SQL Server 的十个步骤
如何利用SQL Server 2000的复制选项
SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
SQL SERVER 2005同步复制技术的应用

MSSQL 中的 专家在线:SQL Server块日志恢复


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 60 ::
收藏到网摘: n/a

SQL Server提供了三种恢复模型:简单,完全和块日志模型。这些模型为你从备份中重新存储数据库提供了各种层级的恢复。块日志恢复的优点包括对事务日志空间的最小要求,块操作的最好性能。虽然如此,仍需消息。它的一个缺点就是当你在备份文件中执行块日志的事务的时候,你无法进行某个时间点的恢复。

  在这篇贴士中,我将会解释你可能会想要选择块日志作为SQL Server恢复手段的环境,以及在这个模型下,你需要哪些步骤来对数据库进行重新存储。

  作为回顾,这里列举了各个恢复模型之间的区别:

  简单模型

  简单恢复模型只能允许你将数据恢复到最近的一次完全备份或者差别备份。事务日志备份不可用,因为事务日志的内容在每次数据库执行检查点的时候都被截断了。

  完全模型

  完全恢复模型可以使用完全备份,差别备份和事务日志备份来提供安全网来抵御完全的失败。因为它可以使用完全或者差别备份来进行重新存储,你就可以将数据库恢复到失败的那个点或者其它某个特定的时间点上去。所有的操作,包括块操作,例如SELECT INTO, CREATE INDEX和块载入数据,都是完全记录日志并可以恢复的。

  块日志

  块日志恢复模型可以提供预防失败的保护,提供最好的性能。为了获得更好的性能,只在最低限度上记录如下的操作,并不是可以完全恢复的:SELECT INTO, 块操作, CREATE INDEX,以及其它有关文字和图像的操作。在块日志恢复模型中,损坏的数据文件将会由于日志的不充分而导致手工完成redo的工作。此外,块日志恢复模型可以让数据库恢复到事务日志备份的结尾,只有当日志备份包含了块更改的时候。

  块日志的好处

  使用块日志恢复模型的一个主要的好处就是他最小化了事务日志所需要的空间,这样它就可以跟踪事务中的某个单个的操作。这一点在你的系统很大,你需要导入大量数据或者创建一个大索引的时候,非常有用。事务仍然被提交了,并且写入了你的数据文件,但是事务日志所需要的空间却没有完全恢复模型那么大。在测试中,你可以看到,插入数据仍然需要大量的事务日志空间,但是创建索引所需要的空间则小得多。

  根据SQL Server备份和恢复模型工作的方式,你可以选择将你的模型从完全恢复改变到块日志恢复,然后再在需要的时候,恢复到完全恢复模型,而不需要干扰年的事务日志备份。这可以让你在执行较大的块日志事务的时候,能够保证事务日志的规模在控制之内。

  要注意的一件事情就是事务写入事务日志备份的方式。如果在你的备份文件中有块日志事务,你就不能进行时间点的恢复。这也是你在处理重新存储的时候需要注意的最大的一件事情。当事务日志备份中存在块日志事务的时候,你必须重新存储整个事务日志。

  备份处理

  备份处理的工作方式一样,无论你的数据库是在完全还是块日志恢复模型。你仍然有选择使用完全、区别和事务日志备份的自由。命令也是完全相同的,如下所示:

  事务日志备份需要注意的另外一件关键的事情就是事务日志备份文件的尺寸。如果你设置了你的数据库采用块日志恢复模型,并且执行了最低限度的日志事务,例如CREATE INDEX,你会看到事务日志自身并没有增大。但是当你执行的是事务日志备份语句的时候,悲愤文件就会变得非常大,因为所有为了重新存储你的数据库的语句所需要重放的数据都存下来了。