我们有一个Server 2008集群,有60个数据库。
完整备份每晚运行,日志备份每15分钟运行一次。
MSDB数据库恢复模型设置为simple (默认)。
为了能够查看这些作业的历史记录,我们必须设置一个清理历史日志的作业。
但是,当这个作业运行时,MSDB的日志文件会变大(20-40 GB)。
我们定期缩小日志文件,因为它有超过80 %的“空闲空间”。
日志文件被设置为根据需要增长,并且没有“自动收缩”
有什么办法可以避免这个日志文件增长吗?
我们应该启用“自动收缩”,还是创建一个作业来收缩日志文件?
发布于 2015-12-13 17:22:44
但是,当这个作业运行时,MSDB的日志文件会变大(20-40 GB)。
问题可能是您正在运行的作业没有在批处理msdb。伪代码如下:
-- select top size as per batch to delete
-- since you are in simple recovery, perform `CHECKPOINT`
-- repeat until all the delete is complete.我们应该启用“自动收缩”,还是创建一个作业来收缩日志文件?
不是的。这是个糟糕的做法。一次心理医生就可以了。预先调整数据、日志文件和调整你的自动成长的大小。
请参阅这个答案- 为什么事务日志不断增长或耗尽空间?
发布于 2015-12-13 13:32:51
我强烈建议不要启用“自动收缩”功能。因为它会造成下列损害:
1)占用大量资源对文件系统进行分层、启动、分段等任务。以及较高的CPU使用率和I/O,因为它将开始分页。
( 2)不可控。
3)它可能会损害数据库索引。
如何避免日志文件的增长?
1)将恢复模型转换为简单恢复
2)开始进行事务日志备份
https://dba.stackexchange.com/questions/123575
复制相似问题