在最近的一个项目中,碰到一些数据库方面的问题,先是为了保护客户数据不至于丢失,要对数据库做定期备份,但不能靠人工去经常手工备份,于是采用了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/
相关文章
- 数据库报ORA-00600: 内部错误代码, 参数: [17059],并产生大量trace日志文件
- MS SQL 监控数据/日志文件增长
- asp.net中使用Global.asax文件中添加应用出错代码,写入系统日志文件或数据库
- Servlet课程0425(七) 到数据库中去验证用户,同时防止SQL注入漏洞
- 星环科技如何用数据库打造第二增长曲线?
- MongoDB安全加固,防止数据库攻击删除勒索威胁
- 实现oracle数据库字段自增长(两种方式)
- 数据库日志文件超级的大,如何在不停止数据库服务的情况下。截断日志文件。
- 坚持#第275天~防止访问量过大导致mysql数据库挂掉了
- 如何使用c#防止Access数据库中的重复条目?