什么时候应该在SQL Server中的日志文件上使用自动收缩?

时间:2008-12-18 10:59:16

标签: sql sql-server database

我的SQL Server(2000)日志文件变得太大,我遇到了一些问题。 Microsoft不建议对日志文件使用自动收缩,但由于它是一项功能,因此在某些情况下它必须有用。有谁知道什么时候适合使用自动收缩属性?

4 个答案:

答案 0 :(得分:12)

您的问题不是您需要定期自动收缩,而是需要定期备份日志文件。 (我们每15分钟支持一次。)备份数据库本身是不够的,你也必须做日志。如果不备份事务日志,它将会增长,直到它占用驱动器上的所有空间。如果备份它,它会释放要重用的空间(在第一次备份后,您仍可能需要缩小以使日志记录更合理)。如果您不需要能够从事务中恢复(除非您的整个数据库包含从其他源加载并且可以轻松重新加载的表,否则您应该能够执行此操作),然后将您的日志设置为simlpe恢复模式。

自动收缩不是一个好主意的一个原因是,您将经常增加事务日志,这会降低性能。如果你备份日志,你可以获得一个相对稳定的大小(在备份之间的时间段内事务日志通常使用的空间量),那么如果异常繁重,日志只需要偶尔增长交易。

答案 1 :(得分:4)

我对此的看法是,当你有许多相当小的数据库时,自动收缩会很有用,这些数据库由于添加了数据而经常变大,之后会有很多空白空间。您还需要记住,文件在频繁增长和缩小时会在磁盘上碎片化。我永远不会在关键数据库或大于2 GB的数据库上使用自动收缩,因为您永远不知道收缩操作何时会启动,并且在收缩完成之前将阻止对数据库的访问。

答案 2 :(得分:3)

您永远不应该打开自动收缩功能。它会以多种方式导致性能下降。文件系统和索引变得支离破碎,而且资源非常密集。如果您正确管理备份,也没有必要。

Read this answer from Paul Randal on Server Fault并且只说否自动收缩 !!

答案 3 :(得分:0)

我曾经使用它,当我们有一个巨大的数据库的演示版本占用了笔记本电脑的大量空间,所以我们用它来保持尺寸。

关键是只有在基本丢弃数据时才使用它。

您应该定期截断日志作为备份策略的一部分。