blog.Toby

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  130 随笔 :: 2 文章 :: 150 评论 :: 0 Trackbacks

恢复模式是一个数据库配置选项,控制如何记录事务日志、事务日志是否需要备份以及数据库可用的还原操作。你为数据库选择的恢复模式,根据该恢复模式执行的或没有执行的日志记录,同时涉及数据恢复问题和性能问题。

学习目标:

n  能够解释各恢复模式间的区别

n  能够为每个SQL Server 2005数据库选择最佳的恢复模式

预计课程时间:10分钟

恢复模式综述

SQL Server 2005为数据库提供了三种恢复模式:完整、简单和大容量日志。这些模式决定了SQL Server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志。截断事务日志是删除已执行事务并把该日志空间让给新事务的过程。下面是每种恢复模式的定义。

n  在完整恢复模式下,数据库引擎把所有操作都记录到事务日志上,并且数据库引擎绝对不会截断日志。完整恢复模式能使数据库恢复到故障时间点(在SQL Server 2005 Enterprise版中,恢复到一个比这更早一些的时间点)。

n  在简单恢复模式下,数据库引擎最低限度地记录大多数操作,并在每个检查点之后截断事务日志。在简单恢复模式下,不能备份或还原事务日志。此外,也不能还原单独的数据页。

重要提示  简单恢复模式
简单恢复模式并不适合那些无法接受丢失最新更改的数据库。

n  在大容量日志模式下,数据库引擎对大容量操作(诸如SELECT INTO和BULK INSERT)进行最小记录。在这种恢复模式下,如果一个日志备份包含任何大容量操作,就可以使数据库恢复到日志备份的结尾,但不能恢复到某个时间点。大容量日志模式仅用于大容量操作期间。

如何配置恢复模式

在SSMS中的“数据库属性”页上可以查看为一个给定数据库指定的恢复模式,对此也可以通过查询sys.database目录视图,其基本语法如下所示:

SELECT name, recovery_model_desc FROM sys.databases

要配置一个数据库的恢复模式,可以进入SSMS中的“数据库属性”页,也可以使用ALTER DATABASE语句。

在SSMS中,通过执行下列步骤可以改变恢复模式。

1.     在SSMS的“对象资源管理器”下展开“数据库”节点。

2.     右击需要设置恢复模式的数据库,然后选择“属性”。选择“选项”页。

3.     这时就可以通过“恢复模式”下拉列表改变恢复模式,如图2.3所示。

图2.3  通过SSMS改变恢复模式

使用ALTER DATABASE语句配置恢复模式的基本语法如下:

ALTER DATABASE <database_name>

SET RECOVERY FULL | SIMPLE | BULK_LOGGED

如前所述,在生产环境下建议对数据库使用完整恢复模式,因为它提供了最可恢复的配置。如果通过大容量机制定期导入数据,则可以临时将数据库的恢复模式改变为大容量日志模式,以获得更好的大容量负载性能。然而,在导入过程结束以后,应将数据库恢复为完整恢复模式。

练习:改变数据库的恢复模式

本练习将数据库恢复模式改变为大容量日志,以获得大容量日志操作的良好性能,然后恢复到完整恢复模式。

1.     通过执行如下ALTER DATABASE语句,将AdventureWorks数据库的数据库恢复模式设置为大容量日志恢复模式。(在改变恢复模式前,对该数据库作完整备份。)

-- Note that you should create the C:"Backup folder at Operating
    System level before running this backup.

BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
AdventureWorks.Bak'

GO

--Change the Recovery Model to Bulk Logged

ALTER DATABASE AdventureWorks

SET RECOVERY BULK_LOGGED

2.    在执行大容量日志操作以后,输入并运行如下ALTER DATABASE语句,将恢复模式改回完整恢复模式,然后执行另一次完整的数据库备份,以备份刚刚装入的数据。

ALTER DATABASE AdventureWorks

SET RECOVERY FULL

--Perform a Full database backup

BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
AdventureWorks.Bak'

GO

本课总结

n  恢复模式允许我们控制数据库引擎如何记录事务日志,可以对一个特定的数据库使用哪些还原操作。

n  SQL Server提供了三个恢复模式:完整、简单和大容量日志。

n  完整恢复模式是默认的模式,而且也是推荐使用的模式,它记录所有的操作,能使数据库恢复到故障时间点。

n  简单恢复模式最低限度地记录大多数操作,它不允许我们备份或还原事务日志。

n  大容量日志恢复模式最低限度地记录大容量操作,主要供大容量操作期间临时                 使用。

n  通过以下两个方法可以配置一个数据库的恢复模式:通过SSMS中的“数据库属性”窗口,或者使用T-SQL语句ALTER DATABASE。

课后测试

下列问题旨在巩固本课介绍的关键内容。如果喜欢用电子版的,可以参见配套CD。

提示  参考答案
这些题目的参考答案以及对每个选项的具体解释,参见本书后面的“参考答案”部分。

1.     下列关于恢复模式的说法,哪个是正确的?

A.    在简单恢复模式下,大多数事务被最低限度地记录到日志中

B.    在完整恢复模式下,大多数事务被最低限度地记录到日志中

C.    在大容量日志恢复模式下,所有事务都被记录到日志中

D.    在简单恢复模式下,所有事务都被记录到日志中

2.     下列哪种方式允许你改变数据库恢复模式?(选择所有正确答案)

A.    sp_configure存储过程

B.    SSMS中的数据库属性

C.    ALTER DATABASE

D.    CREATE DATABASE

3.     在简单恢复模式下,下列哪些恢复操作是不允许的?(选择所有正确答案)

A.    时间点恢复

B.    差异恢复

C.    完整恢复

D.    页恢复

posted on 2008-05-09 13:15 渠上月 阅读(255) 评论(0)  编辑  收藏 所属分类: other tips

只有注册用户登录后才能发表评论。


网站导航: