0

只是想澄清是否有人可以建议:

假设我们有最初设置为 4GB 的事务日志文件,并且以 10% 的增量设置了自动增长。现在事务日志已经增长到 40GB。

问题:事务日志备份是否会在完成后截断 tlog,这意味着 tlog 将恢复到 4GB 或 40GB(但现在 36gb 可以重复使用)

问候

4

2 回答 2

0

不,文件永远不会缩小它被重复使用并且本质上是圆形的。主 .ldf(事务日志文件)由称为虚拟日志文件或 VLF 的较小文件组成。当它们为空时,它们会在 LDF 内部重用。如果所有 VLF 都已满,则日志文件将通过在 LDF 文件末尾添加新的 VLF 来增长。因此,通过百分比自动增长,您可能还会有日志文件碎片,这可能会成为性能杀手。

如果您运行命令 DBCC LOGINFO,您将获得一个结果集,其中包含主文件中所有虚拟日志文件的状态。这些 VLF 基本上是反复使用的。请记住,它本质上是圆形的。

所以当你开始一个事务时,它被写入一个 VLF,当它被提交时,它在 VLF 上被标记为完成。如果您在每个检查点上以简单恢复模式运行数据库,则这些已提交的 VLF 文件将被清理并准备好重新使用。如果您的数据库处于任何其他恢复模式,则即使已提交这些 VLF 也不会被清除。当您进行事务日志备份时,这些 VLF 会被写入事务日志备份,然后被清除。这就是事务日志文件能够重放已提交事务的方式。

但是,包含这些 VLF 的 LDF 文件永远不会缩小。您真的应该阅读以下博客,这是一个真正了解事务日志的好地方:

http://www.sqlskills.com/blogs/kimberly/8-steps-to-better-transaction-log-throughput/

有一些关于此的非常详细的文章,因此请阅读上面的链接,它非常好。

于 2013-08-07T06:34:02.623 回答
-2

不,它不会。备份不会截断日志。你试过缩小吗?

于 2013-08-07T06:06:06.643 回答