Yor*_*rik 6 sql-server backup transaction-log sql-server-2014
我们的 SQL Server 2014 数据库事务日志之一增长非常快,我找不到其根本原因。
数据库处于简单恢复模式。在完整备份期间,日志文件增长到其限制 (800GB) 并且备份失败。
我在备份期间检查了事务,并没有发现任何异常。
所有事务都是我们的常规加载,没有维护工作(索引重建等)
我知道备份可以防止日志重用,但这意味着在备份期间会有 800GB 的更改,这没有任何意义。
我将这个数据库与类似的数据库大小、加载和备份持续时间进行了比较。第二个数据库日志的增长不超过 400GB。
数据库大小为 7TB。备份时间约为 20 小时。日志增长的唯一时间是在备份期间。Log_reuse 显示正确的 Backup_Restore。没有长时间运行的事务。
问题是日志增长的“速度” - 与具有相同负载和相同备份持续时间的类似站点相比,日志少了 4 倍。
根据您的说法,您的数据库中可能存在长时间运行的交易,并且在交易完成之前无法截断日志文件
您应该查询sys.databases
以了解发生了什么事。
SELECT name,
log_reuse_wait,
log_reuse_wait_desc
FROM sys.databases;
Run Code Online (Sandbox Code Playgroud)
专栏log_reuse_wait
将log_reuse_wait_desc
告诉您您需要了解的一切。以下是您将在那里看到的内容的描述:
2 日志备份 您正在等待日志备份发生。
3 主动备份或恢复。备份或恢复操作正在运行
如果您的问题是长时间运行的事务 - 您的选择是找到它并找出它的用途,例如借助Adam Machanic 的 WhoIsActive存储过程。
如果您处理数据库“认为”复制正在进行,您可能应该重建日志文件。
有关更多详细信息和可能的解决方案,请参阅下面提到的资源。
链接: