SQLserver2008⽆法收缩⽇志
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 --简单模式
sql sever 2008GO
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:当同步完成后,再收缩发布机,⽇志正常收缩成功。