sql 2008日志文件占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到,想要释放日志文件霸占的多余空间。
但是,无论怎么收缩(Shrink)日志文件,空间就是不能释放,总是出现错误:
@H_301_4@Cannot shrink log file 2
(CNBlogsText_log) because of minimum log space required.之前解决过类似的问题,也写过一篇博客-sql Server 2008事务日志清理,当时采用的最终解决方法是:
将恢复模式由完整(Full)改为简单(Simple)
收缩(Shrink)日志文件
将恢复模式由简单(Simple)改为完整(Full)
一直以为这就是终极方法,但是竟然没能终结这次遇到的问题。
经过不懈的努力,终于找到真正的终极方法:
1. Detach数据库(
Detach之前一定要屏蔽所有对这个数据库的写入操作
)4. 移除(Remove)这个找不到的日志文件,然后点击Ok进行Attach,sql Server会在数据文件所在的文件夹自动创建一个新的日志文件完成Attach。
5. 如果日志文件需要存放在另外的路径,要再通过Detach/Attach进行日志文件的移动操作。
Detach数据库
将日志文件移动至新的位置