经过一些实践,发现有时候不给收缩,或收缩的不多,与目标有差距。


2012-12-26

---------------------------------------------------------------

在SQL Server 2008下,网上以前流行的截断日志并收缩文件的方法不适合了,报语法错误。

同时因为我的数据库日志增长非常快,大概每天在1G以上,因此必须对其进行收缩。

经过在系统上的测试,感觉用SQL SERVER的维护计划更可行,现将操作方式简介如下:

 注:下面的说明中也提到了使用差异备份,因为数据库文件增长也非常快,因此此处也稍作说明。关注收缩数据库日志文件的可以忽略此部分内容。

1、创建维护计划:

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_磁盘

 

2、创建子计划

a、完整备份,每周一次

 

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_测试_02

b、差异备份,每天一次,或每天多次

 

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_测试_03

c、日志备份,每天一次

 

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_数据库_04

d、收缩数据库

 

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_数据库_05

e、删除备份文件,删除四周以前的备份文件,每天执行

 

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_sql server_06

 f、清除日志备份文件,每天执行

收缩sql server 数据库的日志 150G sql2008数据库收缩日志_sql server_07

3、关于日志文件的增长

如上所述,日志文件每天进行备份,同时每天清除旧的备份文件,这样日志文件虽然做了备份,但不会保留太多。(当然,如果你需要保留日志文件,则可以使用与数据库备份文件相同的清除策略)

日志文件在备份以后,在收缩数据库时,就可以回收已备份的日志文件的空间。但文件大小不会减少,只是增加了可用空间。但这样是可以满足我们的要求的:比如每天可能产生大约1G的日志,而每次备份并回收后,可以收回绝大部分空间,收回的空间则可以满足当天的日志使用了。

此方法不使用网上的那种截断的语句,完全使用SQL SERVER 2008的维护计划来执行,安全,可靠,定时,不用再担心日志文件占满磁盘空间了