【问题标题】:SQL server 2008R2 The transaction log for database 'MGR' is full due to 'ACTIVE_TRANSACTION'SQL server 2008R2 由于“ACTIVE_TRANSACTION”,数据库“MGR”的事务日志已满
【发布时间】:2014-09-15 07:44:13
【问题描述】:

我运行一个查询,希望更新超过 1.3 亿条记录。几个小时后,我收到了一个错误:

由于“ACTIVE_TRANSACTION”,数据库“MGR”的事务日志已满。

现在我的 C 盘驱动器上有 70 MB 可用空间。

我认为问题在于磁盘空间太小,这就是查询失败的原因,但我现在如何才能从查询之前重新获得丢失的磁盘空间?

我使用的是 sql server 2008 R2

感谢任何提示

【问题讨论】:

标签: sql sql-server-2008 transactions transaction-log


【解决方案1】:

问题与 sql 如何记录活动事务期间的所有更改有关。当事务处于活动状态时,无法刷新日志,因此如果您有一个巨大的活动事务,日志会不断增长,直到达到可能超出其容量的点。日志记录的数量取决于许多因素:恢复模式(完全恢复模式是生成更多日志记录活动的模式)。此外,您可以将事务分解为小块,以在其间启用日志刷新。还要查看表格提示 TABLOCK。丢失的磁盘量可能已经进入日志文件。检查一下。

【讨论】:

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