事务日志增长非常快

Yor*_*rik 6 sql-server backup transaction-log sql-server-2014

我们的 SQL Server 2014 数据库事务日志之一增长非常快,我找不到其根本原因。

数据库处于简单恢复模式。在完整备份期间,日志文件增长到其限制 (800GB) 并且备份失败。

我在备份期间检查了事务,并没有发现任何异常。

所有事务都是我们的常规加载,没有维护工作(索引重建等)

我知道备份可以防止日志重用,但这意味着在备份期间会有 800GB 的更改,这没有任何意义。

我将这个数据库与类似的数据库大小、加载和备份持续时间进行了比较。第二个数据库日志的增长不超过 400GB。

数据库大小为 7TB。备份时间约为 20 小时。日志增长的唯一时间是在备份期间。Log_reuse 显示正确的 Backup_Restore。没有长时间运行的事务。

问题是日志增长的“速度” - 与具有相同负载和相同备份持续时间的类似站点相比,日志少了 4 倍。

Geo*_*e K 1

根据您的说法,您的数据库中可能存在长时间运行的交易,并且在交易完成之前无法截断日志文件

您应该查询sys.databases以了解发生了什么事。

SELECT name,
       log_reuse_wait,
       log_reuse_wait_desc
FROM sys.databases;
Run Code Online (Sandbox Code Playgroud)

专栏log_reuse_waitlog_reuse_wait_desc告诉您您需要了解的一切。以下是您将在那里看到的内容的描述:

  • 0 没有
  • 1 检查点 等待检查点发生。还行吧
  • 2 日志备份 您正在等待日志备份发生。

  • 3 主动备份或恢复。备份或恢复操作正在运行

  • 4 活动事务 数据库中有活动事务
  • 5 数据库镜像 镜像上有队列且落后于主服务器或镜像因某种原因暂停
  • 6 复制 复制正在运行,或者数据库“认为”它已标记为复制,或者如果配置了复制,则一切正常
  • 7 数据库快照创建
  • 8 日志扫描
  • 9 始终在线的可用性

如果您的问题是长时间运行的事务 - 您的选择是找到它并找出它的用途,例如借助Adam Machanic 的 WhoIsActive存储过程。

如果您处理数据库“认为”复制正在进行,您可能应该重建日志文件。

有关更多详细信息和可能的解决方案,请参阅下面提到的资源。

链接: