it's empty!

清理动网论坛dvbbs数据库日志步骤

连接数据库后看表,找到 DummyTrans 对象,删除它。

然后打开查询分析器,


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


USE     mybbsdb             -- 要操作的数据库名
Select  @LogicalFileName = 'bbsdb_log',  -- 日志文件名
@MaxMinutes = 10,               -- Limit on time allowed to wrap log.
        @NewSize = 1                  -- 你想设定的日志文件的大小(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


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: dvbbs
相关日志:
评论: 0 | 引用: 0 | 查看次数: 241
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 200 字 | UBB代码 关闭 | [img]标签 关闭
it's empty!