首页 > 代码库 > SQL Server日志文件庞大收缩方法(实测好用)

SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用)

这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果

--截断BACKUP LOG CloudMonitor TO DISK=NUL--收缩DBCC SHRINKFILE(CloudMonitor_log)



 

以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长。

SQL Server日志文件庞大收缩并非易事, 文章中提到:
由于首日志、尾日志和空间重复利用的原因,当备份日志后产生了日志截断,就会标记为可重复利用,但是只有文件尾部可用空间能被收缩。 这样就导致了日志文件的可用空间有98%却怎么收缩都没动静。通过备份+收缩连续操作尽可能让跳过“Active Log”

“收缩文件”尝试过,都无法达到效果:
1. 释放未使用的空间
2. 在释放未使用的空间前重新组织页

 


针对此问题,网上还有一些做法是通过修改为“简单恢复”模式进行收缩,但此方法不适用于AlwaysOn

当然,微软官方也对此问题作出来说明:
“在某些情况下,直到下一个日志截断后,才能收缩日志。”
 
官方文档:
收缩事务日志
可能延迟日志截断的因素