zoukankan      html  css  js  c++  java
  • [转]SQLServer2008日志文件无法收缩处理方法

    问题描述
        发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行。事务日志达30+G,而且使用常规的截断、收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法。

    查看日志信息  
        在查询分析器中执行如下代码来查看日志信息:      DBCC LOGINFO('数据库名称')  
        我们看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。接下来分析为什么会有这么多status=2的记录


    查看日志截断延迟原因  
        活跃(active)的日志无法通过收缩来截断,有各种原因会使日志截断延迟,具体表现就是事务日志的物理文件无法通过截断、收缩来减小,通过下面的代码可以看到实例上每个数据库的日志截断延迟原因:

    USE master 
    go
    
    SELECT name, database_id, log_reuse_wait, log_reuse_wait_desc, is_published
    FROM sys.databases
    go

     参考官方解释,可能延迟日志截断的因素https://msdn.microsoft.com/zh-cn/library/ms345414.aspx

    针对延迟日志截断原因的部分解决方案 
    LOG_BACKUP  
        备份日志后再执行收缩即可backup log [database] with nolog 
       
    REPLICATION 
        这种情况我遇到过两次,但我根本没有启用过REPLICATION,据查,这好像是SQLSERVER2008的一个BUG,解决方法是给标有“REPLICATION”的数据库任意一个表创建数据库事务复制(TRANSACTION REPLICATION),然后再删除,执行数据库与日志备份后,就可以收缩了。

      

    附,sqlserver收缩日志:

    http://www.cnblogs.com/zhaoguan_wang/p/4949176.html

  • 相关阅读:
    selenium + python网页自动化测试环境搭建
    工作总结
    脚本测试总结
    一些知识
    反相器
    递归算法设计
    什么是递归
    CSS3弹性盒模型布局模块
    小方法
    第24章 最佳实践
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/5132372.html
Copyright © 2011-2022 走看看