• 您的位置 设计江湖 >> 设计教程 >> 网站建设 >> 限制sql server数据库日志文件的大小
  • 限制sql server数据库日志文件的大小

  • 作者:  来源:  日期:2007-10-21 11:57:09  点击:  参与本文评论  进入论坛
  • 由于经常和数据库打交道,经常见到在客户的机器上,SQL server数据库日志文件的大小,远远超过于数据库数据文件的大小,客户用的都是一些服务器,磁盘空间有的是,当然不在乎这点文件,可以,当客户要求查找一些数据的时候,就不得不备份客户的数据库,经常是备份回来的数据库,无法还原,原因就是我的PC上没有这么大的空间来还原,无奈啊,

    只有把客户的数据库日志缩小一下了,于是从网上找了以下代码,可以收缩数据库日志,我执行了一下,日志缩小的,不过有一个错误产生,还没来的急分析,先不管他,达到目的才是硬道理

     


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


    USE bbbbb -- 要操作的数据库名
    SELECT @LogicalFileName = 'bbbbb_Log'-- 日志文件名
    @MaxMinutes = 100-- 数据库操作的超时上限.
    @NewSize = 100 -- 你想设定的日志文件的大小(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 (8000not 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, @StartTimeGETDATE()) -- 当操作未超时
    AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileNameAND (@OriginalSize * 8 /1024> @NewSize
    BEGIN -- Outer loop.
    SELECT @Counter = 0
    WHILE ((@Counter < @OriginalSize / 16AND (@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


  •   参与"限制sql server数据库日志文件的大小"的评论  现有评论数:  进入论坛
      设计江湖shejijh.com声明:此文章是为了传递信息,文章内容仅供参考,转载请注明。
      版权归作者所有,如有侵犯您的利益请联系设计江湖shejijh@163.com我们会及时处理!
       Copyright authors have,If it is Damage your interest please contact shejijh@163.com
  • 上一篇:没有了!
    下一篇:asp中access到sql 要做的工作
  • 广告链接
photoshop2008|设计论坛|设计博客|设计教程|photoshop|设计素材|求职招聘|设计资讯|CD/AI平面|Dreamweaver|网站建设|图片素材|插件滤镜|flash动画|GIF闪字闪图|3D与CG|影视多媒体|设计理论|计算机相关|专题推荐|培训资料|交流与问答|设计交流论坛|培训与认证|培训机构|设计培训机构|软件培训机构|培训机构VIP|设计江湖站务|网站地图|设计江湖搜索|广告联系|设计江湖网|友情链接|电脑培训网|电脑培训网|设计bbs文章

声明:本站在此有部分内容仅仅对一些文章及图片作收集,为大家提供学习交流,并无商业用途,
有些出处作者已经无法查知,其版权仍归其原作者所有!如果有侵犯到您的权益,敬请告知fuwuxx@163.com,我们将立刻注明或删除!
Copyright © 2006--2007 shejijh.com 设计江湖
闽ICP备06031322号