只是想澄清是否有人可以建议:
假设我们有最初设置为 4GB 的事务日志文件,并且以 10% 的增量设置了自动增长。现在事务日志已经增长到 40GB。
问题:事务日志备份是否会在完成后截断 tlog,这意味着 tlog 将恢复到 4GB 或 40GB(但现在 36gb 可以重复使用)
问候
只是想澄清是否有人可以建议:
假设我们有最初设置为 4GB 的事务日志文件,并且以 10% 的增量设置了自动增长。现在事务日志已经增长到 40GB。
问题:事务日志备份是否会在完成后截断 tlog,这意味着 tlog 将恢复到 4GB 或 40GB(但现在 36gb 可以重复使用)
问候
不,文件永远不会缩小它被重复使用并且本质上是圆形的。主 .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/
有一些关于此的非常详细的文章,因此请阅读上面的链接,它非常好。
不,它不会。备份不会截断日志。你试过缩小吗?