您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> MSSQL >> SQL server2008无法收缩日志

SQL server2008无法收缩日志

来源:网络整理     时间:2016/11/24 15:27:56     关键词:

关于网友提出的“ SQL server2008无法收缩日志”问题疑问,本网通过在网上对“ SQL server2008无法收缩日志”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: SQL server2008无法收缩日志
描述:

用的是网上普遍有的收缩代码
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, TRUNCATEONLY) 
GO
USE [master]
GO
ALTER DATABASE shujuku SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE shujuku SET RECOVERY FULL --还原为完全模式
GO
最后收缩失败,失败信息如下:
无法收缩日志文件 2 (shujuku_log),因为该文件结尾的逻辑日志文件正在使用
始终无法收缩成功!服务器一直没压缩过日志 导致盘满了,最后没办法扩展了磁盘才临时解决了问题!
问下各位怎么在不中断业务的情况下,实现日志收缩!网上了查了很多,都是提供压缩方法的,但没有提及这个问题的。CSDN上以前有人发过这个问题。但好像也没人能给出解决方案,最后好像楼主把数据库分离后重新附加!但这样好像并不怎么妥当!


解决方案1:

一般不会出问题,如果出问题可能原因如下:
1,你的数据库服务器可能在非正常情况下,关机并重启过,会导致一部分文件一直被占用
2,如果你是手动收缩数据库,有时会失败,尝试把当前数据库的数据库类别改成“简单模式”,再尝试收缩
3,如果是你复制数据中的读取机,像你说的,没清理过,直接把硬盘占满了,导致sqlserver日志无处写,也会出问题

解决方案2:

是不是正在执行 数据操作由于空间不足没有完成事务,重启后又回滚不了所产生操作,在日志所在硬盘腾出空间,再做收缩动作
-----------
另一解决方法分离数据库,把日志文件删除或备份到其它盘符,只附加数据库文件,生成新日志文件

解决方案3:

引用 4 楼 chengdudeyun 的回复:
Quote: 引用 2 楼 fredrickhu 的回复:

其实报错已经很明显了。你的日志正在使用,无法截断,所以无法压缩。
你的服务器是不是有什么高可用性的一些东西,比如镜像,日志传送这些。
用这个语句查看一下日志状态:
select log_reuse_wait_desc from sys.databases where name='DBName'

"REPLICATION"
还有我只有一台服务器,这天服务器只放这个数据库做服务用  没有什么副本服务器之类的 

这个是复制啊 你的机器以前做过复制。或者是修改过计算机名,而复制没有删除掉
以上介绍了“ SQL server2008无法收缩日志”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4104803.html

相关图片

相关文章