欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

清理SQL Server 2008日志文件Cannot shrink log file 2 的解决方案

程序员文章站 2022-05-03 07:55:22
sql 2008日志文件占了23g硬盘空间,而事务日志已经截断(truncate),实际日志内容很小,1g都不到,想要释放日志文件霸占的多余空间。 但是,无论怎么收缩(s...

sql 2008日志文件占了23g硬盘空间,而事务日志已经截断(truncate),实际日志内容很小,1g都不到,想要释放日志文件霸占的多余空间。

但是,无论怎么收缩(shrink)日志文件,空间就是不能释放,总是出现错误:

cannot shrink log file 2 (cnblogstext_log) because of minimum log space required.

之前解决过类似的问题,也写过一篇博客-sql server 2008事务日志清理,当时采用的最终解决方法是:

将恢复模式由完整(full)改为简单(simple)

收缩(shrink)日志文件

将恢复模式由简单(simple)改为完整(full)

一直以为这就是终极方法,但是竟然没能终结这次遇到的问题。

经过不懈的努力,终于找到真正的终极方法:

1. detach数据库(detach之前一定要屏蔽所有对这个数据库的写入操作

2. 删除或重命名日志文件

3. attach数据库,这时会提示找不到日志文件

清理SQL Server 2008日志文件Cannot shrink log file 2 的解决方案

4. 移除(remove)这个找不到的日志文件,然后点击ok进行attach,sql server会在数据文件所在的文件夹自动创建一个新的日志文件完成attach。

5. 如果日志文件需要存放在另外的路径,要再通过detach/attach进行日志文件的移动操作。

detach数据库

将日志文件移动至新的位置

attach数据库,修改日志文件的路径并完成attach

该终极方法的弊端是在操作期间,被操作的数据库不能被正常访问。