如何缩小 SQL Server 日志文件的大小

Ron*_*fin 10 log-files shrink sql-server

我不知道如何缩小数据库 ldf 文件的大小。

DBA 说我应该使用 backup log dbname with truncate_only

虽然看起来它在 SQL 查询分析器中正确执行,但 ldf 文件仍然超过 2 Gb。

**根据下面的一些评论和一些答案进行澄清。***有问题的特定数据库是我的笔记本电脑上的一个数据库,我仅将其用于开发过程。日志文件增长到看起来会导致磁盘已满的程度。不涉及生产风险。我了解我提出的问题中的方法和我接受的答案在生产环境中存在风险。*

Bra*_*adC 11

哦,恐怖!请停止告诉人们他们应该缩小他们的日志文件!

如果您遇到这种情况,则极有可能出现以下情况之一:

  1. 您的数据库处于完全恢复模式,它应该处于简单模式
  2. 您的数据库处于完全恢复模式,您应该定期进行日志备份
  3. 您的数据库处于完全恢复模式,并且您的日志备份由于某种原因失败
  4. 您正在运行大量巨大的事务,这些事务将日志文件放大到巨大的大小

每个问题的答案如下:

如果 (1),则将数据库切换到简单模式
如果 (2),则安排定期日志备份
如果 (3),则修复您的计划日志备份
如果 (4),则不要这样做:) 相反,请执行小批量工作。

请注意,这些都不需要使用(已弃用)“带 truncate_only 的备份日志 dbname”

相反,一旦您使用上述技术之一清除日志文件,然后使用以下方法缩小(现在为空)日志:

DBCC SHRINKFILE ('log logical name', 2000)
Run Code Online (Sandbox Code Playgroud)

总是指定一个合理的最终大小,否则它会缩小到接近 0,下次需要它时,将不得不花时间增长。

  • 我同意它绝对是最后一件事,缩小文件。正确的维护可以避免这种情况。但是一旦它变大而你想要它变小,你就必须缩小它。但是,在缩小时,最好将文件缩小到尽可能小,然后以 8GB 的​​增量将文件增大到正确的大小。这将优化文件中 VLF 的数量。请参阅 - http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx。 (2认同)