• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

『收藏』收缩日志文件的SQL脚本_sqlserver

sqlserver 搞代码 7年前 (2018-06-16) 153次浏览 已收录 0个评论

/* 本文由微软新闻组摘录下来的。一段非常有用的脚本。*/

前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M,但日志文件占用空间为2.8G!!! 试了多种方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都没办法将文件缩小。无论如何,这应该算SQL SERVER的一个BUG吧。

后来找到下面的代码,就可以将日志文件缩小到自己想要的大小了。把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可(我已经用过多次了)—–SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INT

http://www.gaodaima.com/35331.html『收藏』收缩日志文件的SQL脚本_sqlserver

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

— Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT ‘Original Size of ‘ + db_name() + ‘ LOG is ‘ +CONVERT(VARCHAR(30),@OriginalSize) + ‘ 8K pages or ‘ +CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + ‘MB’FROM sysfilesWHERE name = @LogicalFileNameCREATE 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 notexpiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name =@LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN — Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN — updateINSERT DummyTrans VALUES (‘Fill Log’)DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT ‘Final Size of ‘ + db_name() + ‘ LOG is ‘ +CONVERT(VARCHAR(30),size) + ‘ 8K pages or ‘ +CONVERT(VARCHAR(30),(size*8/1024)) + ‘MB’FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF

 

欢迎大家阅读《『收藏』收缩日志文件的SQL脚本_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:『收藏』收缩日志文件的SQL脚本_sqlserver

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址