ホームページ  >  記事  >  データベース  >  SQL Server 2005 大容量日志恢复

SQL Server 2005 大容量日志恢复

WBOY
WBOYオリジナル
2016-06-07 14:56:171252ブラウズ

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

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

SELECT name, recovery_model_desc FROM sys.databases

--使用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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。