防止数据库日志文件增长

时间:2021-12-28 23:18:30
在最近的一个项目中,碰到一些数据库方面的问题,先是为了保护客户数据不至于丢失,要对数据库做定期备份,但不能靠人工去经常手工备份,于是采用了SQL SERVER的数据库复制技术,定期的在人迹罕至的深夜做该项工作。在数据备份问题解决的同时,也带来了新的问题,由于定期的数据复制,产生了大量的数据库日志信息,导致数据库日志文件声速增长,以至于磁盘空间不够,SQL SERVER停止工作。为此,必须有相应的措施来定期为数据库日志文件瘦身,问题产生的当时,临时采用了最笨的方法:
1,分离数据库。
2,删除日志文件。
3,重新附加数据库。

问题算是临时解决了,但方法是不对的,经过一塌糊涂的google和研究后,找出以下大家公认的方法:
1,截断事务日志中非活动的事务。
2,收缩日志文件大小。

相应的SQL Scripts如下:
1,Backup LOG DatabaseName WITH TRUNCATE_ONLY
2,DBCC SHRINKFILE(LogFileName,5)

详细的说明可参考SQL SERVER帮助文档。

参考资料:
http://support.microsoft.com/?scid=kb;zh-cn;873235&spid=2852&sid=61
http://support.microsoft.com/kb/317375/
http://support.microsoft.com/kb/272318/