缩减SQLServer数据库日志
最近查看服务器运行情况,发现磁盘剩余容量每过一日就会缩小一大截,
眼看就不够数据库备份文件的大小了,必须处理!
一开始以为是服务器上后台应用产生的日志太多,但也不至于那么夸张啊?
每天减小几个G!
检查了一遍服务器中的文件的大小,发现数据库的一个文件占到了300+G的空间。
文件名:DCWLW_Log.ldf,跟它一块的一个文件:DCWLW.mdf,也占到40+G的空间。
其中,DCWLW.mdf是数据文件,DCWLW_Log.ldf是数据库的事务日志。
数据文件不能动,但日志文件倒是可以删除的。
方案1:分离数据库
在网上查询如何缩小数据库日志的方法,发现有几种,其中最推荐的一种是
- 先分离数据库
- 删除日志文件
- 再附加数据库,附加时找不到数据库日志,所以选择删除,管理软件会自动生成新的日志
但分离数据库,首先数据库得没有客户端连接,因为本例中的服务器在生产环境中,因此不能草率地断开连接。
本来想着是不是等半夜夜深人静之时,再进行此操作,可是考虑到晚上可能因为懒而搞不了,所以还是再看看还有没有别的好方法。
在过程中,发现很多例子中 SHRINKFILE 函数用来缩减文件大小,因此查询它用法,发现microsoft官网中在 DBCC SHRINKFILE 一节中本来就有缩减日志的例子!!!
使用例子后确实完美解决了日志过大的问题,将332G日志收缩到了1M。
此次实践再次提醒了自己,遇到任何问题,最好的解答永远在官网!
(当然,如果没有一开始的查询,甚至我都不知道 SHRINKFILE 这个词)
如果想深入的学习,或要处理一些复杂的问题,查看官网资料永远是第一选择。
方案2:官网例子
1 |
|
其它的一些语句:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 飞椅档案!
评论