SQL 2008日志文件占用23G硬盘空间,而事务日志已被截断。实际日志内容很少,不到1G。我想释放日志文件占用的多余空间。
然而,无论您如何收缩日志文件,空间就是无法释放,并且总是有一个错误:
由于所需的最小日志空间,无法收缩日志文件2 (CNBlogsText_log)。
以前解决过类似的问题,也写过博客——SQL server 2008事务日志清理。当时采用的最终解决方案是:
将恢复模式从完整更改为简单。
收缩日志文件
将恢复模式从简单更改为完整。
我一直以为这是终极方法,但是我没有结束这个问题。
经过不懈的努力,我终于找到了真正的终极方法:
1.分离数据库(分离前必须阻止对此数据库的所有写操作)
2.删除或重命名日志文件
3.附加数据库,会提示找不到日志文件。
4.删除找不到的日志文件,然后单击“确定”进行附加。SQL Server将自动在数据文件所在的文件夹中创建一个新的日志文件来完成附加。
5.如果需要将日志文件存储在另一个路径中,请通过分离/附加来移动日志文件。
分离数据库
将日志文件移动到新位置。
附加数据库,修改日志文件的路径并完成附加。
这种终极方法的缺点是在操作过程中,被操作的数据库无法正常访问。