SqlServer 数据库日志无法收缩处理过程
2014-12-11 13:45
260 查看
今天按常用方法收缩一个测试用的数据库日志,发现没法收缩!
日志大小还是一样。
DBCC OPENTRAN 查看是否打开的事务。发现有打开的事务,执行检查点再收缩,还是不行!
参考:http://bbs.csdn.net/topics/350199751,将日志事务标志为已分发,再收缩,不行!
现在查看虚拟日志文件,发现有很多,并且都处于活动状态
最重要的语句竟然忘了,这可以查看日志空间的重复使用正在等待最后一个检查点的描述.。发现是REPLICATION
这个数据库之前有作为事物同步过,但是都删除了。分发库也不存在了,现在竟然还有日志在等待?!
参考http://bbs.csdn.net/topics/390674731?page=1 ,执行删除所有复制对象。
再看日志重用状态,正常了!看来有效!
在收缩数据库,查看已经收缩了!其他也恢复正常!
dbcc sqlperf(logspace)
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 查看是否打开的事务。发现有打开的事务,执行检查点再收缩,还是不行!
DBCC OPENTRAN (dbname) CHECKPOINT
参考:http://bbs.csdn.net/topics/350199751,将日志事务标志为已分发,再收缩,不行!
--日志中所有复制的事务将标记为已分发 EXEC sp_repldone @xactid = NULL,@xact_segno = NULL,@numtrans = 0,@time = 0,@reset = 1
现在查看虚拟日志文件,发现有很多,并且都处于活动状态
dbcc loginfo
最重要的语句竟然忘了,这可以查看日志空间的重复使用正在等待最后一个检查点的描述.。发现是REPLICATION
SELECT name,log_reuse_wait_desc FROM sys.databases where name='dbname'
这个数据库之前有作为事物同步过,但是都删除了。分发库也不存在了,现在竟然还有日志在等待?!
参考http://bbs.csdn.net/topics/390674731?page=1 ,执行删除所有复制对象。
--删除当前数据库中所有复制对象 EXEC sp_removedbreplication dbname
再看日志重用状态,正常了!看来有效!
在收缩数据库,查看已经收缩了!其他也恢复正常!
DBCC SHRINKFILE (N'dbname_log' , 0, TRUNCATEONLY) GO DBCC LOGINFO GO DBCC OPENTRAN (dbname) GO
相关文章推荐
- 复制导致数据库日志无法截断收缩
- sql server 2005数据库日志无法收缩
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- [转]SQLServer2008日志文件无法收缩处理方法
- SQLSERVER收缩数据库日志
- 数据库用户修改密码后,SDE服务无法启动的处理过程
- 分享一个收缩数据库日志文件的存储过程
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- 截断sqlserver 日志文件 收缩数据库文件
- MSSQL - SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- SqlServer清除日志并收缩数据库
- VB错误处理中心过程,写数据库日志表或写日志文件
- SqlServer清除日志并收缩数据库
- SQLServer收缩日志及数据库文件【xiame】
- SQLServer收缩日志及数据库文件
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- 收缩SqlServer 2008数据库日志
- sqlserver删除日志文件后无法附加数据库的解决方法
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理