zoukankan      html  css  js  c++  java
  • 手动清理SQL日志

    BACKUP LOG 数据库名字  WITH NO_LOG   DBCC SHRINKDATABASE(数据库名字)

    =============/******/============

    SET   NOCOUNT   ON
    DECLARE   @LogicalFileName   sysname,
    @MaxMinutes   INT,
    @NewSize   INT


    USE   JMFPos   --   要操作的数据库名
    SELECT   @LogicalFileName   =   'JMFPos_log ',   --   日志文件名
    @MaxMinutes   =   10,   --   Limit   on   time   allowed   to   wrap   log.
    @NewSize   =   100   --   你想设定的日志文件的大小(M)

    --   Setup   /   initialize
    DECLARE   @OriginalSize   int
    SELECT   @OriginalSize   =   size  
    FROM   sysfiles
    WHERE   name   =   @LogicalFileName
    SELECT   'Original   Size   of   '   +   db_name()   +   '   LOG   is   '   +  
    CONVERT(VARCHAR(30),@OriginalSize)   +   '   8K   pages   or   '   +  
    CONVERT(VARCHAR(30),(@OriginalSize*8/1024))   +   'MB '
    FROM   sysfiles
    WHERE   name   =   @LogicalFileName
    CREATE   TABLE   DummyTrans
    (DummyColumn   char   (8000)   not   null)


    DECLARE   @Counter   INT,
    @StartTime   DATETIME,
    @TruncLog   VARCHAR(255)
    SELECT   @StartTime   =   GETDATE(),
    @TruncLog   =   'BACKUP   LOG   '   +   db_name()   +   '   WITH   TRUNCATE_ONLY '

    DBCC   SHRINKFILE   (@LogicalFileName,   @NewSize)
    EXEC   (@TruncLog)
    --   Wrap   the   log   if   necessary.
    WHILE   @MaxMinutes   >   DATEDIFF   (mi,   @StartTime,   GETDATE())   --   time   has   not   expired
    AND   @OriginalSize   =   (SELECT   size   FROM   sysfiles   WHERE   name   =   @LogicalFileName)  
    AND   (@OriginalSize   *   8   /1024)   >   @NewSize  
    BEGIN   --   Outer   loop.
    SELECT   @Counter   =   0
    WHILE   ((@Counter   <   @OriginalSize   /   16)   AND   (@Counter   <   50000))
    BEGIN   --   update
    INSERT   DummyTrans   VALUES   ( 'Fill   Log ')  
    DELETE   DummyTrans
    SELECT   @Counter   =   @Counter   +   1
    END  
    EXEC   (@TruncLog)  
    END  
    SELECT   'Final   Size   of   '   +   db_name()   +   '   LOG   is   '   +
    CONVERT(VARCHAR(30),size)   +   '   8K   pages   or   '   +  
    CONVERT(VARCHAR(30),(size*8/1024))   +   'MB '
    FROM   sysfiles  
    WHERE   name   =   @LogicalFileName
    DROP   TABLE   DummyTrans
    SET   NOCOUNT   OFF  

    =============/******/============

  • 相关阅读:
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月19日)
    2016年小升初海淀区全部初中排名分析
    LVM Linear vs Striped Logical Volumes
    Spring Data Redis实现消息队列——发布/订阅模式
    Redis Pubsub命令用法
    mysql 截取身份证出生日期
    MA均线组合
    Eclipse代码格式化规范
    JSON Web Token实际应用
    JSON Web Token单点登录设计
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2112572.html
Copyright © 2011-2022 走看看