管理 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于管理 SQL Server 的事务日志的所有评论