【问题标题】:t-sql transaction log ballooning. Finding cause due to SP'st-sql 事务日志膨胀。找SP的原因
【发布时间】:2013-10-30 09:40:00
【问题描述】:

我们的事务日志 (2008 R2) 增长非常快(尽管有完整备份)存在问题。在 SQL 分析器中,我运行跟踪捕获所有带有行数的插入、删除和更新语句,它们都非常低。

服务器上运行的许多应用程序都使用 SP 并且 Rowcount 设置为关闭,所以我看不到哪些应用程序正在执行大量更新、插入、删除操作(我知道有几个,但有数百个SP,其中许多是第 3 方应用程序的一部分)。追踪这些的最佳方法是什么?

我知道除了插入、更新、删除之外还有其他问题会导致日志增长或不被截断,但我想排除这些问题(如果可以的话)

有什么建议吗?

TIA

标记

【问题讨论】:

  • 对不起,是写日志备份,不是完整备份
  • log_reuse_wait 说什么?

标签: sql-server-2008 transaction-log


【解决方案1】:

是的,就像 remu 提到的那样,哈哈。完整备份不会清除您的 tlog。您需要进行 tlog 备份以减小 tlog 的大小。

首先,您多久备份一次 tlog?或者你甚至支持他们吗?控制 tlog 大小的唯一方法是确保 tlog 处于简单恢复模式(不建议这样做,您无法将数据库恢复到某个时间点,以防发生灾难)

作为维护的一部分,定期备份 tlog 并保持它们整洁。有时应用程序有时会执行大量事务,这会使 tlog 增长到较大的大小,但这就是为什么拥有某种维护工作很重要,一旦达到 80% 或 85% 就会支持 tlog当前大小。

【讨论】:

    【解决方案2】:

    事务日志 (2008 R2) 增长非常快(尽管有完整备份)

    那是因为完整备份不会截断日志。只有 LOG 备份会截断日志。这被称为Myth 30-05

    30-05) 完整或差异备份会清除日志

    没有。日志备份包括自上次日志备份以来的所有日志 - 没有什么可以改变 - 无论该日志是否也由完整备份或差异备份备份。去年我在 Twitter 上有一个著名的论点,并写了这篇博文作为证据:Misconceptions around the log and log backups: how to convince yourself。在 FULL 或 BULK_LOGGED 恢复模型中,唯一清除日志的是日志备份。

    您需要先查看调查日志增长的常用位置:log_reuse_wait

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多