快速业务通道

管理 SQL Server 的事务日志

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-21
用 DBCC SQLPERF 语句返回一个 SQL Server 实例的每个数据库的事务日志信息,要获取日志数据,你必须在参数中使用 LOGSPACE 关键字,如下所示:
DBCC SQLPERF(LOGSPACE);
这条语句返回以 MB 计算的日志大小,日志空间使用的百分比,以及你的 SQL Server 实例中每个数据库的日志状态。 EmployeeDB 数据库的信息如下:
Database Name  Log Size (MB)  Log Space Used (%)  Status
EmployeeDB     0.9921875      40.05906            0
这个例子中 EmployeeDB 日志大约是 1 MB 大小,并且使用了 40% 的日志空间。
你也可以在 SQL Server Management Studio 中生成一个图形化的报表,结果类似于执行 DBCC SQLPERF 语句。方法是:在对象浏览器中,右键单击数据库名称,选择报表,再选择标准报表,最后点击磁盘利用率。

备份日志文件
如果你将数据库的恢复模式配置为完全模式或大容量模式,你就应当有规律的备份事务日志,这样你就可以截断日志并释放不活动的日志空间。备份也可以用于恢复数据库(通常与数据库备份一起使用)。
在事务日志备份之前,必须先执行过一个数据库的完整备份。通常,在我使用本文中的日志备份前,一般都先执行下面的数据库备份语句:
BACKUP DATABASE EmployeeDB
TO DISK = ''E:\DbBackup\EmployeeDB_dat.bak'';
注意:执行这段代码时,确认指定路径存在或指定一个另外的路径。
执行完数据库备份后,我一般运行下面的数据修改语句,以使当前日志不包含已备份的内容:

USE EmployeeDB;

UPDATE Employees
SET JobTitle = ''To be determined'';

UPDATE Employees
SET CountryRegionName = ''US''
WHERE CountryRegionName = ''United States'';

DELETE Employees
WHERE BusinessEntityID > 5;
然后我再运行 DBCC SQLPERF 查看日志空间的统计信息,该语句返回下面的结果:
Database Name  Log Size (MB)  Log Space Used (%)  Status
EmployeeDB     0.9921875      64.41929            0
你可以看到,日志空间的使用率已从40%提升到接近65%。
备份完数据库,你就可以备份事务日志了。执行事务日志的备份,使用 BACKUP LOG 语句,并指定备份位置,如下:
-- back up transaction log
BACKUP LOG EmployeeDB
TO DISK = ''E:\LogBackup\EmployeeDB_log.bak'';
同样要注意路径的问题。
这里我指定了备份路径,然而, BACKUP 还支持其它选项,可以在SQL Server Books Online查看 “BACKUP (Transact-SQL)” 主题以获得更多信息。
执行完事务日志的备份以后, SQL Server 数据库引擎会自动截断不活动的日志空间。(注意:截断事务日志只是移除了不活动的虚拟日志空间,并不减小文件大小)要减小日志文件,你应当对文件进行收缩。要检查是否截断了日志,请再次运行 DBCC SQLPERF 语句。现在的结果应当如下面所示:
Database Name  Log Size (MB)  Log Space Used (%)  Status
   EmployeeDB     0.9921875      44.88189            0
现在日志空间已下降到45%。

修改日志文件
你可以使用 ALTER DATABASE 语句来修改日志文件。在执行语句时,必须使用适当的选项指定修改文件的原因( MODIFY FILE clause)。 除了给

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号