清理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. (理论篇)温故而知新_PHP入门基础教程

    简单的回顾一下基础知识 1.嵌入方法: 类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定. 2.引用文件: 引用文件的方法有两种:req ...

  2. AngularJS的路由、模块、依赖注入

    AngularJS的路由在实际应用中更多是由另外封装好的angular-ui-router.js实现的! 为什么不用Ajax而要用前端路由?

  3. ZOJ 1078 Palindrom Numbers

    原题链接 题目大意:判断一个数是不是palindrom.不限于十进制,可以在任何进制下判断. 解法:还好,数字的范围不大,int类型足够搞定.方法就是从2进制开始,先把数字转换成2进制,判断是否对称, ...

  4. nfs文件系统启动参数配置

    1. tiny6410(增强版)bootargs(nfs文件挂载)启动参数(周学伟) noinitrd console=ttySAC0,115200 lcd=S70 init=/init root=/ ...

  5. UVa 11988 破损的键盘(链表)

    原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  6. 多线程问题(JVM重排序)

    public class Test3 { private static boolean ready; private static int Number; private static class R ...

  7. yum命令

    1)查询 yum   list #查询所有可用软件包列表 yum search 关键字  #搜索服务器上和关键字相关的包 #对比rpm的查询:rpm  -qa | grep xxx 2)安装 yum ...

  8. Python路径总结

    Windows下文件路径的分隔符是'\'反斜杠,文件路径也是一个字符串,牵扯到'\'在Python字符串中存在转义的情况,就对这个问题做一个探究. Python字符串中要使用'\'时有两种方法: 使用 ...

  9. Debug

    memory dump就是程序留下的一个犯罪现场,而你就是一个侦探,侦查技术越高,发现的秘密也越多,破案也就越容易.

  10. 出现Fatal IO error 11 (资源暂时不可用) on X server :0.0.的可能原因及解决方案

    我在使用python的过程当中发现了这个有这样的错误,后来看了下面这篇文档才知道原因所在. 最近在编写一个局域网的聊天工具,在编写客户端时,我把界面部分和事件处理函数写好后,准备再开一个线程用于接收服 ...