快速业务通道

管理 SQL Server 的事务日志

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-21
日志文件指定适当的逻辑名外,还有以下三个参数可用:
SIZE: 为日志文件指定大小。你可以指定以 KB, MB, GB, 或 TB为单位的文件大小,例如: 10 MB 或 1 GB。如果在添加文件时没有指定文件大小,数据库引擎使用默认的大小:1MB。新的文件大小必须比现在的大,否则在运行语句时会报错。
MAXSIZE: 这个参数指定该文件最大可以是多大。同样,你可以以 KB, MB, GB, 或 TB 为单位指定。如果你没有指定最大的文件大小,文件会一直变大,直到占满整个磁盘空间。
FILEGROWTH: 增量用于文件扩展时。可以KB, MB, GB, 或 TB 指定,或者用百分比。如 10%。如果没有指定增量的单位,则默认为MB,如果没有指定增量,则默认为10%。如果指定增量为0,则不允许自动增加。
下面用 ALTER DATABASE 语句来修改 EmployeeDB 数据库的日志文件 EmployeeDB_log:
-- modify log file
ALTER DATABASE EmployeeDB
MODIFY FILE
(
    NAME = EmployeeDB_log,
    SIZE = 2MB,
    MAXSIZE = 200MB,
    FILEGROWTH = 10MB
);
如上所示,我在指定了日志文件的逻辑名称以后,设置了文件的大小 (2 MB),最大值 (200 MB),和增量 (10 MB)。
执行 ALTER DATABASE 语句后,可以查询 sys.database_files 的分类视图,以查看更改,结果如下:
Name             size  max_size  growth  is_percent_growth
EmployeeDB_log   256   25600     1280    0
现在文件的大小是 256 个 8-KB 页面,最大值 25,600 个 8-KB 增量是 1,280 个 8-KB 页面。

收缩日志文件
前面已经说过,要截断事务日志,你必须先备份日志,这样数据库引擎就可以自动的截断不活动的记录。然而截断日志并不会减小它的文件大小。要减小日志文件的大小,必须收缩日志文件,它会移除一个或多个不活动的虚拟日志文件。
要收缩日志文件,你可以使用指定了日志文件名称、目标大小(MB)的 DBCC SHRINKFILE 语句,下面的例子,使用DBCC SHRINKFILE 语句收综 EmployeeDB_log 文件:
-- shrink log file
DBCC SHRINKFILE(EmployeeDB_log, 1);
上面例子中文件的目标大小是 1 MB (128 8-KB pages),执行该语句时,数据库引擎会将文件收缩到指定大小,但必须是在有足够的虚文件时。执行完后,可以通过查询 sys.database_files 分类视图,以检查是否文件已缩小,结果应当如下:
Name             size  max_size  growth  is_percent_growth
EmployeeDB_log     128    25600       1280       0
你可以看到,文件的大小已从 256 个 8-KB 减小到 128。如果数据库引擎无法释放空间,它会提示你一些建议的步骤,你可以按提示重新运行 DBCC SHRINKFILE 语句。

添加或删除日志文件
如果你在增加日志文件的大小,一种方法是为日志增加文件。
你可以在执行ALTER DATABASE语句时,使用 ADD LOG FILE 子句,在子句中,除了新的日志文件的逻辑名和物理名,你还可以指定以下参数:
SIZE: 日志文件的初始大小。你可以使用 KB, MB, GB, or TB为单位,如 10 MB 或 1 GB。如果不指定,则数据库引擎指定为默认值 1MB。
MAXSIZE: 日志文件的最大值,单位同上。如果不指定此参数,日志文件会一直增长,直到占满所在的磁盘空

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号