【问题标题】:'The Transaction Log for database is full due to 'Active Transaction' - Unable to Backup, Enlarge, Truncate, or Shrink“由于“活动事务”,数据库的事务日志已满 - 无法备份、放大、截断或缩小
【发布时间】:2019-07-24 03:28:29
【问题描述】:

我有一个 SQL Server 数据库,它不断给我以下错误:

消息 9002,第 17 级,状态 4,第 30 行
由于“ACTIVE_TRANSACTION”,数据库“DSC_DW_Summary”的事务日志已满。

尽管我使用了简单恢复和 1 分钟的恢复时间,但我可以看到日志文件的“已用日志空间”为 100%。当我尝试执行以下任何操作(建议在线作为潜在解决方案)时,我收到上面列出的错误。

  • 增加日志文件的 MaxSize
  • 备份数据库
  • 收缩数据库

我在运行时也没有看到任何正在运行的事务:

SELECT * FROM sys.dm_tran_database_transactions

或:

DBCC OPENTRAN

这给了我结果:

没有有效的未结交易。
DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。

所以我很困惑。不知何故,由于“活动交易”,我无法解决问题,但我找不到任何活动交易。

【问题讨论】:

  • OT - 属于dba。但是简单的恢复模式和“1分钟恢复时间”是不一致的。简单意味着您只能恢复到上次备份。非常怀疑您是否每分钟进行一次完整备份。
  • @SMor 你会做什么不同的事情?将恢复时间设置为每周一次?

标签: sql-server database-administration


【解决方案1】:

首先检查是什么阻止了您的日志重用:

SELECT [name], [log_reuse_wait_desc] FROM [sys].[databases];

然后也发出一个 CHECKPOINT 来尝试刷新日志

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2013-07-14
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    相关资源
    最近更新 更多