SQL server2008无法收缩日志

SQL server2008无法收缩日志,错误信息为:

1:由于最小日志空间要求,无法收缩日志文件

2:无法收缩日志文件 2 (XXX_log),因为该文件结尾的逻辑日志文件正在使用


描述:

用的是网上普遍有的收缩代码
USE [master]
GO
ALTER DATABASE shujuku SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE shujuku SET RECOVERY SIMPLE --简单模式
GO
USE shujuku
GO
DBCC SHRINKFILE (N'shujuku_Log' , 11) 
GO
USE [master]
GO
ALTER DATABASE shujuku SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE shujuku SET RECOVERY FULL --还原为完全模式
GO
最后收缩失败,失败信息如下:
无法收缩日志文件 2 (shujuku_log),因为该文件结尾的逻辑日志文件正在使用
始终无法收缩成功!找了各种解决办法,试了各种SQL

 

但是首先有个事情我是很确定的。这个日志的增长是因为我创建了发布和订阅,并且在刚创建的几天都能正常的收缩,运行了几天后才发现突然不能收缩了。

最后我发现故障出现在订阅的客户机上,由于我只关注了发布机器的日志,忽略了订阅客户机的日志。发现订阅客户机的日志已经把客户机磁盘撑满了,造成发布和订阅无法正常完成。

因此发布机的事务一直未得到正常的执行,所以日志文件不能收缩。

 

解决:

1:在订阅客户机上收缩日志,并且创建一个定时任务。

2:当同步完成后,再收缩发布机,日志正常收缩成功。

posted @ 2017-07-02 03:13  coolsundy  阅读(2550)  评论(0编辑  收藏  举报