捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:MS Sql Server 日志清理工具
coldwind8112 22387 2006/3/26 9:06:28
'grades_log'  请注意大小写,要和你数据库的实际文件名一样
网上的代码没有注意这个问题,一般那个log的l要大写
pchaos 21998 2006/3/9 8:47:29
上面的代码我试过,这次没有成功..不知道怎么回事
kygl 21847 2006/3/2 0:01:12
程序主要是提供方便吧.
楼上的SQL语句果然够详细
greater 21846 2006/3/1 20:48:41
我给出这段代码吧!

SET NOCOUNT ON
DECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INT
USE grades -- 要操作的数据库名
SELECT @LogicalFileName = 'grades_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
coldwind8112 21812 2006/2/28 10:31:37
一段SQL语句可以做到的事情,有必要写个程序嘛
cfeng 21807 2006/2/28 8:44:21
为什么master的表可以清除很多次,而其他表就不行呢?

master的清除到什么时候才是头?清除到最后数据库还正常吗?
jmwl77 21805 2006/2/28 8:15:55
棒~
第一页 上一页 下一页 最后页 有 7 条纪录 共1页 1 - 7
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号 更新RSS列表