频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

缩小数据库日志的另类方法代码分析

来源: 作者: 出处:巧巧读书 2006-08-01 进入讨论组

  SET NOCOUNT ON
  DECLARE @LOGICALFILENAME SYSNAME,
      @MAXMINUTES INT,
      @NEWSIZE INT
  USE abc---要操作的数据库
  SELECT @LOGICALFILENAME = 'abc_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 @COUNT 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 NOE EXPIRED
   AND @ORIGINALSIZE =(SELECT SIZE FROM SYSFILES WHERE NAME = @LOGICALFILENAME)
   AND (@ORIGINALSIZE*8/1024)>@NEWSIZE
  BEGIN --OUTER LOOP.
    SELECT @COUNT = 0
      WHILE((@COUNT<@ORIGINALSIZE/16) AND (@COUNT<50000))
      BEGIN -- UPDATE
        INSERT DUMMYTRANS VALUES ('FILL LOG')
        DELETE DUMMYTRANS
        SELECT @COUNT = @COUNT + 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本U R L:http://www.qqread.com/oracle/2006/08/v352189052.html 更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章