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:当同步完成后,再收缩发布机,日志正常收缩成功。
时间: 2024-10-19 00:53:41