欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQL Server 2005 大容量日志恢复

程序员文章站 2022-05-21 09:57:43
...

你负责管理一个 SQL Server 2005 数据库。此数据库使用来自另一个网站导出的数据进行数据更新。以月为基础,每月都用 bcp 命令从一个纯文本文件将数据导入数据库。此操作应占用最小的日志纪录。然而,用户反映他们收到错误信息显示事务日志已满。你调查并发现

你负责管理一个 SQL Server 2005 数据库。此数据库使用来自另一个网站导出的数据进行数据更新。以月为基础,每月都用 bcp 命令从一个纯文本文件将数据导入数据库。此操作应占用最小的日志纪录。然而,用户反映他们收到错误信息显示事务日志已满。你调查并发现错误发生在导入数据时。需要阻止此错误的发生。
--在SSMS中的“数据库属性”页上可以查看为一个给定数据库指定的恢复模式,对此也可以通过查询sys.database目录视图,其基本语法如下所示:

SELECT name, recovery_model_desc FROM sys.databases

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

ALTER DATABASE 

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