今天按经常使用方法收缩一个测试用的数据库日志,发现无法收缩!
- USE [dbname]
- GO
-
- ALTER DATABASE [dbname] SET RECOVERY SIMPLE WITH NO_WAIT
- GO
- DBCC SHRINKFILE (N'dbname_log' , 0, TRUNCATEONLY)
- GO
- DBCC SHRINKDATABASE(N'dbname' )
- GO
日志大小仍是同样。
- DBCC OPENTRAN (dbname)
- CHECKPOINT
- EXEC sp_repldone @xactid = NULL,@xact_segno = NULL,@numtrans = 0,@time = 0,@reset = 1
如今查看虚拟日志文件,发现有不少,而且都处于活动状态
最重要的语句居然忘了,这能够查看日志空间的重复使用正在等待最后一个检查点的描述.。发现是REPLICATION
- SELECT name,log_reuse_wait_desc FROM sys.databases where name='dbname'
这个数据库以前有做为事物同步过,可是都删除了。分发库也不存在了,如今居然还有日志在等待?!
- EXEC sp_removedbreplication dbname
再看日志重用状态,正常了!看来有效!sql

在收缩数据库,查看已经收缩了!其余也恢复正常!数据库
- DBCC SHRINKFILE (N'dbname_log' , 0, TRUNCATEONLY)
- GO
- DBCC LOGINFO
- GO
- DBCC OPENTRAN (dbname)
- GO

http://blog.csdn.net/kk185800961/article/details/41865073