jifeng1010
发表于 2008-9-5 15:14:26
原帖由 南瓜 于 2008-7-25 01:00 发表 http://bbs.sunwy.org/images/common/back.gif
按照3楼的大侠提供的方法做了,又照2楼的游侠说的进系统清空了日志,可D盘那文件并没有变小,还是有55G,只是暂时不再长大了,好家伙,什么东西!?乖乖,那我的D盘还能用回来么!?明天在观察一下,非常感谢二位热心 ...
这个问题很好解决的,到网上下载一个SQL 日志压缩工具就可以了!很小很强大的功能,而且还可以限制日志文件大小!
gjbox
发表于 2008-9-28 21:34:11
日志文件 。有很多种方法 我提供一段 代码吧
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
Select @LogicalFileName = 'tablename_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
以上代码请仔细看看 有帮助的
s888888h
发表于 2008-12-30 16:46:44
我以前还真没发现过这个问题.回去得赶紧检查设置.
转身离开
发表于 2008-12-30 20:31:31
有长见识了。。这情况有碰到 不知道处理
还好没55G这么大
weldearcy
发表于 2009-1-3 20:09:22
来论坛几天,收获不少啊,以前朋友叫我学数据库,我没听,现在.......:L
wwfoxmail
发表于 2009-1-13 15:45:47
感谢大家的回复,方法是不是也适合速达软件吧,先按照方法试试看,熟悉一下sql
享受寂寞
发表于 2009-2-11 18:49:21
果然OK了,阳光就是好,其他地方都找不到这么有用的~~~
pupper
发表于 2009-2-14 08:06:45
a8可以自动备份数据的。定时备份很不错
m1978xz
发表于 2009-3-16 23:14:38
这说明楼主的D盘也是很大啊。我这个笔记本一共才40G的空间。学习了。免得也生成这么大的文件。呵呵。
kyrix
发表于 2009-3-21 01:51:01
原帖由 好人一生平安 于 2008-7-27 17:09 发表 http://bbs.sunwy.org/images/common/back.gif
看到楼主这个问题,本人上传个工具给你吧。专门用来清除数据库日志的。只要你把日志文件不再添加的勾打上,以后永远都不会添大了。
如下图
此方法是正确的,“完全”数据库会产生非常大的数据log