如何自动减少事务日志大小?

2 sql-server-2008

可能的重复:
为什么 SQL Server 事务日志不断增长或空间不足?

我如何以编程方式和自动减少事务日志的大小,因为没有人知道它何时变满,因为我们如何管理它,任何人都可以为此提出建议

Mik*_*lsh 6

您需要首先了解您希望从 SQL Server 环境中获得何种类型的恢复(从时间点的角度来看)。

您是否希望能够恢复到特定时间点?然后您想保持完全恢复模式,并且您需要开始进行事务日志备份(日志文件将继续以完整模式增长,直到您进行日志备份,如下面的链接博客文章中所述)

如果您可以只使用最后一次完整备份而不是特定时间点,那么您可以像@andomar 的回答所建议的那样切换到简单备份。(在此模型中,如果您在每晚 8 点备份并在晚上 7 点 30 分发生故障,则您必须回到昨晚 8 点。这在许多应用程序中都很好,但您需要确保您的业务对此没有问题。这篇博文讨论了客户对恢复的期望

如果您想在事务日志文件因管理不善而增大后减小其大小,您可以缩小。但我不会像另一个答案所暗示的那样缩小整个数据库。那会引起其他问题。一般来说,缩小数据库并不是最佳实践。我会做一个SHRINKFILE

DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS
Run Code Online (Sandbox Code Playgroud)

此处描述此命令。

如果您想更深入地了解机制,几年前我写了一篇博客文章,讨论事务日志增长。适当的管理是最好的,因为这样您就不必担心找到一种自动缩小它的方法。