MSSQL数据库细节——ldf日志过大无法收缩问题

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

MSSQL数据库细节——ldf日志过大无法收缩问题

昨天遇到一个SQL server日志文件太大,收缩报错的问题在此记录一下。

问题的起因是,执行SQL的时候出现下面的提示:

image.webp

1、、查看一下数据库文件所在的磁盘,已经爆掉了。查看数据库日志文件大小,有70多个G,第一反应是先做数据库日志收缩,依然报错。

image.webp

2、百度了一下,大部分帖子都说是CDC导致的,但是我的服务器没有使用CDC,排除了这种可能

3、考虑到收缩日志可能需要一定的空间,移出磁盘部分文件,再进行收缩,此时不再提示错误(毕竟磁盘未满),但是收缩没有生效,空间未改变(数据库恢复模式确认为简单)

4、查看数据库和日志的状态

数据库:

select name,log_reuse_wait_desc from sys.databases where name='ais20190906130330_0403'

image.webp

日志重用的等待状态是replication状态

--删除数据库中复制对象

EXEC sp_removedbreplication TESTB

再次查询依然是replication状态

查询DBCC loginfo()

发现所有日志的状态都是status=2,即活动的状态,这是因为项目中每次批量写入数据的过程都是异常中断结束,导致所产生的日志都是活跃的状态。

遇到以上情况,直接对数据库做一次完整备份,之后这些日志的状态会自动更新为可以重用的状态,就可以直接收缩掉了。

5、其他场景

将日志中所有复制的事务将标记为已分发有时候也可以解决日志无法收缩问题

EXEC sp_repldone @xactid = NULL,@xact_segno = NULL,@numtrans = 0,@time = 0,@reset = 1



学习


学习


学习


学习了


 不错

MSSQL数据库细节——ldf日志过大无法收缩问题

昨天遇到一个SQL server日志文件太大,收缩报错的问题在此记录一下。问题的起因是,执行SQL的时候出现下面的提示:1、、查看一下数据库文...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息