CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

sqlserver7日志常用方法无法收收日志,高手请进

楼主yqh_sea(海阔天空)2003-11-04 14:48:09 在 MS-SQL Server / 应用实例 提问

我用管理器先备份数据库及其日志在收缩没有用  
  日志640M使用26M  
  dump   transaction   test_db   with   no_log  
  dbcc   shrinkfile(test_db_dev_log,1)      
   
  backup   log   test_db   with   no_log  
  dbcc   shrinkfile(test_db_dev_log,   1)  
     
  这几中方法都没效果,我用server2000的管理器去收收缩也没用,但是我把该数据库导入到server2000中用其中任何一种方法都可以搞定。   我试着删除该数据库在还原数据库但还原数据库的大小一样日志还是那么大  
  高手请指教????? 问题点数:100、回复次数:10Top

1 楼pengdali()回复于 2003-11-04 14:51:00 得分 40

清空日志  
  DUMP     TRANSACTION     库名     WITH     NO_LOG    
   
  再:  
  企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了  
   
  手工做呢?  
  Top

2 楼pengdali()回复于 2003-11-04 14:51:29 得分 0

SET   NOCOUNT   ON  
  DECLARE   @LogicalFileName   sysname,  
  @MaxMinutes   INT,  
  @NewSize   INT  
   
   
  USE   WebRoot   --   要操作的数据库名  
  SELECT   @LogicalFileName   =   'WebRoot_log',   --   日志文件名  
  @MaxMinutes   =   10,   --   Limit   on   time   allowed   to   wrap   log.  
  @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   (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   OFFTop

3 楼pengdali()回复于 2003-11-04 14:55:48 得分 0

SET   NOCOUNT   ON  
  DECLARE   @LogicalFileName   sysname,  
  @MaxMinutes   INT,  
  @NewSize   INT  
   
   
  USE   WebRoot   --   要操作的数据库名  
  SELECT   @LogicalFileName   =   'WebRoot_log',   --   日志文件名  
  @MaxMinutes   =   10,   --   Limit   on   time   allowed   to   wrap   log.  
  @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   (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   OFFTop

4 楼sdhdy(大江东去...)回复于 2003-11-04 15:01:43 得分 0

 
  SQL   SERVER企业管理器-》右键数据库-》所有任务-》截断数据库日志,按操作进行即可!Top

5 楼yqh_sea(海阔天空)回复于 2003-11-04 15:29:16 得分 0

to:pengdali(大力   V3.0)在server7的管理器中没有指定大小,我用命令指定也不行。我在其他机器上用server2000的管理器按此操作无效。Top

6 楼lga(lga)回复于 2003-11-04 16:35:53 得分 30

1、清空日志  
  2、建一作业,定时备份日志  
  即可Top

7 楼lga(lga)回复于 2003-11-04 16:36:53 得分 0

对了,还需将数据库设为“自动收缩”。Top

8 楼pengdali()回复于 2003-11-04 17:04:02 得分 0

好久没有用过7.0  
   
  try:  
   
  企业管理器-->你的数据库-->属性-->数据文件-->修改Top

9 楼tjan(安安(DBA招募中。。。))回复于 2003-11-04 17:31:04 得分 30

有时候,收缩日志并不能马上看到收缩的结果,是因为   VLF   里面还有尚未完成的事务,如果想尽快的看到收缩的结果,可以适当的调整你的日志文件的增长方式。Top

10 楼yqh_sea(海阔天空)回复于 2003-11-14 13:45:35 得分 0

问题还是没有解决,谢谢各位Top

相关问题

  • SQLSERVER日志文件问题
  • 怎样删除SQLServer的事务日志
  • 关于sqlserver日志文件的问题???
  • SQLSERVER 日志管理大讨论(下)!!!
  • 怎么清除sqlserver里面的日志?
  • 怎样查询SqlServer的操作日志?
  • sqlserver日志文件在哪里查看?
  • 高分请SQLServer高手来拿!(数据库日志问题)
  • MS SqlServer可以不用日志文件吗?
  • sqlserver提示日志已满,该如何清除??

关键词

  • 数据库
  • 文件
  • db
  • 日志
  • 收缩
  • originalsize
  • logicalfilename
  • newsize
  • 管理器
  • maxminutes

得分解答快速导航

  • 帖主:yqh_sea
  • pengdali
  • lga
  • tjan

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo