卸离数据库-->删除日志文件-->附加数据库(会自动重新创建日志文件).

解决方案 »

  1.   

    压缩日志即可:
    USE[master]
         GO
         ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
         GO
         ALTERDATABASE DNName SET RECOVERY SIMPLE   --简单模式
        GO
         USE DNName 
         GO
         DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
         GO
         USE[master]
         GO
        ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT
        GO
        ALTERDATABASE DNName SET RECOVERY FULL  --还原为完全模式
        GO
    步骤:
    1、把上述语句拷贝。
    2、把“DNName”换成你要压缩数据库的名字。
    3、把'DNName_Log'换成日志的名字,这个名字是,在数据库名上按右键-〉属性。在弹出的对话框中,找到[文件]双击,在右表格中找日志别名(我记得),不是文件名。
    4、替换完后,执行。 
      

  2.   

    DBCC SHRINKFILE 就行。日志文件建议别手动删除,有可能会出错。
      

  3.   

     问下,这个日志文件一直可以无限期压缩?buxing 
      

  4.   

     问下,这个日志文件一直可以无限期压缩?buxing  谢谢斑竹哈,可以说下原因吗?再问下有什么可以解决日志文件过大
      

  5.   

    日志文件太大的话,收缩下就可以了。GO checkpoint; 
    dbcc dropcleanbuffers;GO  
    dump transaction @库名 with no_log ; 
    backup log @库名 with no_log ; 
    dbcc shrinkdatabase(@库名)  ; 
    dbcc shrinkfile(@file_id)---select * from sysfiles ---找到@file_id就是那个log文件的id
      

  6.   

    你可以看下:http://blog.csdn.net/hwhmh2010/article/details/17301317
    在这里头有对事务日志的物理结构、逻辑结构,以及事务日志满的处理方式的详细介绍。
      

  7.   

    没有活动的事务,主要是insert数据多,所以运行一段时间日志文件就比较了,做备份难道日志文件就不会增加很快?周期性备份是指自动备份吗?项目以后要部署在局域网不可能去客户现场的
      

  8.   

    做个维护计划,比如半小时、1小时做一次日志备份,通常情况下ldf就不会增大,用DBCC SQLPERF(LOGSPACE)可以知道所有数据库的日志使用百分比,如果再完整恢复模式下不做常规的日志备份,ldf就会增长很大。日志备份的其中一个功能就是控制ldf文件的大小,不要乱相信别人那些脱机→分离→删除→附加,会导致数据的不一致甚至数据库无法使用。
      

  9.   

    脱机分离不行,但是Detach的这种分离是可以的,只要保证数据库里面没有Active的交易,那么删除是没有问题的。但是不建议这样做,太麻烦了,还不如Shrink来的方便。