您当前的位置: 首页 > 数据库教程 > MSSQL教程 > 教你如何缩小SQL Server数据库日志文件

教你如何缩小SQL Server数据库日志文件

作者:guanchaofeng 来源:不详 发布时间: 2009-07-10 18:35 点击:
问题:数据库实际大小为600MB,日志文件实际大小为33MB,但日志文件占用空间为2.8GB!试了多种方式,SHIRNKDATABASE,TRUNCATELOGFILE,都没办法将文件缩

教你如何缩小SQL Server数据库日志文件

  问题:数据库实际大小为600MB,日志文件实际大小为33MB,但日志文件占用空间为2.8GB!试了多种方式,SHIRNKDATABASE,TRUNCATELOGFILE,都没办法将文件缩小。无论如何,这应该算SQLServer的一个BUG吧。
  
  解决方法:
  
  后来找到下面的代码,就可以将日志文件缩小到自己想要的大小了。把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可。
  
  -----SETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEMarias--要操作的数据库名SELECT@LogicalFileName='Marias_log'--日志文件名@MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=100--你想设定的日志文件的大小(M)--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECT'OriginalSizeof'+db_name()+'LOGis'+CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'FROMsysfilesWHEREname=@LogicalFileNameCREATETABLEDummyTrans(DummyColumnchar(8000)notnull)DECLARE@CounterINT,@StartTimeDATETIME,@TruncLogVARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog='BACKUPLOG'+db_name()+'WITHTRUNCATE_ONLY'DBCCSHRINKFILE(@LogicalFileName,@NewSize)EXEC(@TruncLog)--Wrapthelogifnecessary.WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpiredAND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)AND(@OriginalSize*8/1024)>@NewSizeBEGIN--Outerloop.SELECT@Counter=0WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))BEGIN--updateINSERTDummyTransVALUES('FillLog')DELETEDummyTransSELECT@Counter=@Counter+1ENDEXEC(@TruncLog)ENDSELECT'FinalSizeof'+db_name()+'LOGis'+CONVERT(VARCHAR(30),size)+'8Kpagesor'+CONVERT(VARCHAR(30),(size*8/1024))+'MB'FROMsysfilesWHEREname=@LogicalFileNameDROPTABLEDummyTransSETNOCOUNTOFF

分享到:
本文"教你如何缩小SQL Server数据库日志文件"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4