清理SQL Server日志释放文件空间的终极方法

 转自:http://www.cnblogs.com/dudu/archive/2013/04/10/3011416.html

【问题场景】有一个数据库,它的名字叫CNBlogsText,日志文件霸占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到。23G的空间只放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数据库,这时会提示找不到日志文件

4. 移除(Remove)这个找不到的日志文件,然后点击Ok进行Attach,SQL Server会在数据文件所在的文件夹自动创建一个新的日志文件完成Attach。

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

  • Detach数据库
  • 将日志文件移动至新的位置
  • Attach数据库,修改日志文件的路径并完成Attach

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

这就是我找到的清理SQL Server日志释放文件空间的终极方法。也许有经验的你觉得这是常识,我才不管呢,只要能秒杀实际问题,就值得分享!

清理SQL Server日志释放文件空间的终极方法的更多相关文章

  1. (转)SQL SERVER 日志已满的处理方法

    本文转载自:http://www.cnblogs.com/eycbest/archive/2012/01/04/2311567.html 事务日志文件Transaction Log File是用来记录 ...

  2. SQL SERVER 日志已满的处理方法 (转)

    事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf.在 SQL Server 7.0 和 SQL Server 2000 中,如果设置了自动增长功能,事 ...

  3. SQL Server日志文件庞大收缩方法(实测好用)

    原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK ...

  4. 收缩SQL Server日志不是那么简单

    收缩SQL Server日志不是那么简单的(翻译)   原文地址:http://rusanu.com/2012/07/27/how-to-shrink-the-sql-server-log/ 说明:本 ...

  5. SQL Server日志文件过大 大日志文件清理方法 不分离数据库

    SQL Server日志文件过大    大日志文件清理方法 ,网上提供了很多分离数据库——〉删除日志文件-〉附加数据库 的方法,此方法风险太大,过程也比较久,有时候也会出现分离不成功的现象.下面的方式 ...

  6. SQL Server 日志和代理的错误日志

    本文介绍的日志不是事务日志,而是SQL Server 日志和代理的错误日志,按照主体把错误日志分为SQL Server.SQL Server Agent.Database Mail,以及 Window ...

  7. sql server 日志文件结构及误操作数据找回

    一. 概述 在sql server 里有数据文件.mdf和日志文件.ldf,日志文件是sqlserver数据库的另一个重要组成部分,日志文件记录了所有事务以及每个事务对数据库所做的修改.为了提高数据库 ...

  8. 解决Sql Server 日志满了,设置收缩

    解决Sql Server 日志满了,设置收缩: --查看文件占用空间 . '文件大小(MB)',* from sysfiles; ALTER DATABASE SpyData SET RECOVERY ...

  9. SQL SERVER 日志写入原理浅析

    昨天看到网上有一个关于SQL SERVER 课件,便随手下载了下来看看主要讲了些什么内容,于是看到了下面两个PPT页面 由于第一张PPT上的内容不太准确(日志文件中没有“日志页”的概念,只有VLF的概 ...

随机推荐

  1. 了解 C++ 默默编写并调用的函数

    前言 对于一个类来说,最最基础的三类成员函数莫过于:构造函数,析构函数以及拷贝函数 (copy构造函数和=重载函数).即使你的类没有为这些函数做出定义,C++ 也会自动为你创建.本文将讲述的是 C++ ...

  2. 快速用springmvc搭建web应用-超越昨天的自己系列(10)

    Demo地址:http://pan.baidu.com/s/1sjttKWd 创建命令: mvn archetype:generate -DgroupId=com.witown.open.demo - ...

  3. nohup启动命令(转)

    简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程(本站 ...

  4. het smooth 组装高杂合度二倍体基因组前期数据处理

    http://sourceforge.net/projects/het-smooth/ equencing technologies, such as Illumina sequencing, pro ...

  5. Python 新手常犯错误(第二部分)

    转发自:http://blog.jobbole.com/43826/ 在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言.渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所 ...

  6. 装载:关于拉格朗日乘子法与KKT条件

    作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...

  7. Color Map的生成方法

    /* Return a RGB colour value given a scalar v in the range [vmin,vmax] In this case each colour comp ...

  8. Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  9. 【转载】.NET(C#): Task.Unwrap扩展方法和async Lambda

    .NET(C#): Task.Unwrap扩展方法和async Lambda 目录 Task.Unwrap基本使用 Task.Factory.StartNew和Task.Run的Unwrap操作 使用 ...

  10. python 文件编码

    错误:UnicodeDecodeError: 'gbk' codec can't decode byte 原因:文件为utf-8编码,系统却用gbk去解码,必然出现错误. 解决方法: with ope ...