sql server数据库事务日志已满请参阅log_reuse_wait_desc怎么解决?

sql server数据库事务日志已满请参阅log_reuse_wait_desc怎么解决?数据库使用时 莫名其妙出现关于事务日志已满的报错

数据库使用时,莫名其妙出现关于事务日志已满的报错。具体报错如下:

数据库中的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc列。怎么解决呢?

1.运行以下命令:

select name,log_reuse_wait , log_reuse_wait_desc from sys.databases

发现相关数据库的log_reuse_wait_desc 列的内容为active_transaction,说明这个数据库的事务日志在使用中。

2.运行命令:

DBCC loginfo

发现有一个数据库事务日志的状态为2,也就是运行中。

这种一般是备份或压缩或还原任务没有完成。

3.运行命令:

DBCC SHRINKFILE (test1_log)

括号里是要压缩的数据库的逻辑文件名。

压缩完成,再次运行DBCC loginfo,log_reuse_wait_desc 列的内容变成nothing,数据库恢复正常。

如果再次出现active_transaction,那么可能还有备份任务卡住。

那就执行一下全部备份任务,如果备份失败,就查看事务日志,把失败的数据库脱机,再次执行全部备份。成功后,将脱机的数据库联机,再次全部备份,问题就解决。 这样操作的原理是有没完成的事务占用了日志服务,造成日志文件变成只读。数据库事务日志已满的报错实际上是不对的,应该报错日志文件被占用。

 

 

今天的文章 sql server数据库事务日志已满请参阅log_reuse_wait_desc怎么解决?分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-12 21:17
下一篇 2024-12-12 21:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/84204.html