SQL server 2008R2数据库的事务日志' MGR'已完成,因为“ACTIVE_TRANSACTION'

时间:2014-09-15 07:44:14

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

我运行一个查询,其中我想要更新超过130万条记录。几个小时后我收到一个错误:

数据库的事务日志' MGR'由于' ACTIVE_TRANSACTION'而已满。

现在我的C盘上有70 MB空闲。

我认为问题在于光盘空间很小,这就是为什么查询失败但我现在如何从查询之前重新获得丢失的光盘空间?

我正在使用sql server 2008 R2

感谢任何提示

1 个答案:

答案 0 :(得分:1)

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