zoukankan      html  css  js  c++  java
  • 收缩并截断SQLSERVER服务器上所有数据库日志

    EXEC   sp_msforeachdb   @command1=N'   
      PRINT   
    ''''   
      RAISERROR(
    ''处理数据库:   ?   '',10,1)   WITH   NOWAIT   
      PRINT   
    ''''   
        
      --   截断日志   
      BACKUP   LOG   [?]   WITH   NO_LOG   
        
      --   收缩文件   
      USE   [?]   
      DECLARE   tb   CURSOR   LOCAL   
      FOR   
      SELECT   N
    ''DBCC   SHRINKFILE(''+RTRIM(fileid)+N'')''   
      FROM   dbo.sysfiles   
      DECLARE   @s   nvarchar(4000)   
      OPEN   tb   
      FETCH   tb   INTO   @s   
      WHILE   @@FETCH_STATUS=0   
      BEGIN   
      EXEC(@s)   
      FETCH   tb   INTO   @s   
      END   
      CLOSE   tb   
      DEALLOCATE   tb   
        
      --   Auto   Shrink   
      IF   LOWER(
    ''?'')   not   in(''master'',''tempdb'')   
      EXEC   sp_dboption   
    ''?'',''autoshrink'',''TRUE''   
        
      --   设置数据库恢复模型为   SIMPLE   
      IF   LOWER(
    ''?'')   <>   ''tempdb''   
      EXEC(N
    ''ALTER   DATABASE   [?]   SET   RECOVERY   SIMPLE'')   
      
    '   

    ------来自邹建


    MSSQL2005日志的收缩

    1.右键在清除日志的数据库,如“TestDB”,点击[新建查询(Q)]
    2.输入以下SQL语句,其中“TestDB”是数据库名称

    DUMP TRANSACTION TestDB WITH NO_LOG

    3.执行该SQL,成功后继续以下操作

    4.右键该数据库节点,点击[任务(T)] -> [收缩(S)] -> [文件(F)]

    5.在弹出的“收缩文件”对话框中,将“文件类型(T)”选为“日志”,将“收缩操作”选中“在释放未使用的空间前重新组织页(O)”

    6.在“将文件收缩到(K)”文本框中输入后面提示的最小大小的数值,点击[确定]即可。

    忽然发现原来空间急剧减少的原因是MSSQL2005的errorlog,而不是database的log文件。太囧了~~~

    现在补上清楚MSSQL2005的errorlog的办法。

    sql2005的error一共有6个,从errorlog,errlog.1一直到errorlog.6貌似是7个。。

    执行一次EXEC sp_cycle_errorlog就会产生一个新的errorlog,然后把errorlog.6给删掉。就是先进先出(队列类似的情况)这样循环6次就可以把errorlog都刷新一遍。老的那个就被删掉了。

  • 相关阅读:
    第三周作业
    第二周作业
    第一次作业(2)
    第一次作业
    百度翻译新API C#版在 winform,Asp.Net的小程序
    ajax 里的数据请求
    结合css与javascript来实现手机移动端的屏幕滑动效果
    js公农历互转(1900~2100年)
    webpack命令
    vscode快速输出console.log
  • 原文地址:https://www.cnblogs.com/LCX/p/1335626.html
Copyright © 2011-2022 走看看