CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请教sql server7.0中附加数据库

楼主zhmq()2003-01-11 19:12:10 在 MS-SQL Server / 基础类 提问

关于sql   server2000缩小日志文件的方法见过不少了  
   
  前几天遇到一个客户的sql   server7.0,其日志文件每个1.6G,共有8个,最后硬盘此分区空间不够了才发现问题。当时我停止数据库服务后,删除掉日志文件,并在重新启动服务后用在sql2000联机文档里查到的附加数据库语句将数据文件附加了上去。当时数据库一切正常,但是自己现在还是没有把握,当然当时已经做了备份。  
   
  请教大家,在sql2000联机文档中查到的语句在7.0中运行有什么影响或副作用吗?  
  问题点数:50、回复次数:9Top

1 楼tj_dns(愉快的登山者)回复于 2003-01-11 22:16:09 得分 5

只要能运行,就说明7.0也是支持这些语句的;只要使用的合理应该没有问题,但要记住的一点就是,实验前要记着先备份数据库.Top

2 楼xxcw(Puma)回复于 2003-01-11 22:25:38 得分 5

数据库的日志文件删除后,对整个数据库有影响吗?我也时常这样做,因为ldf文件实在太大了。Top

3 楼pengdali()回复于 2003-01-11 22:25:40 得分 30

EXEC   sp_attach_single_file_db   @dbname   =   'pubs',    
        @physname   =   'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs.mdf'  
   
  CREATE   DATABASE   你的新库名    
  ON   PRIMARY   (FILENAME   =   'c:\program   files\microsoft   sql   server\mssql\data\你的新库的文件.mdf')  
  FOR   ATTACH  
  GO  
   
  你create   database   test   先试试!Top

4 楼pengdali()回复于 2003-01-11 22:26:44 得分 0

如果你想直接清除日志:  
  DUMP     TRANSACTION     @DataBaseName     WITH     NO_LOG      
     
  DBCC     SHRINKFILE(     @LogoFileName,@NewSize)Top

5 楼pengdali()回复于 2003-01-11 22:27:19 得分 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   OFF  
  Top

6 楼z5wjz(z5wjz)回复于 2003-01-12 11:33:16 得分 5

如果想缩小数据库用这个命令就可以了,  
  backup   log   yourdbname   with   no_log  
  dbcc   shrinkdatabase   (yourdbname)Top

7 楼zhmq()回复于 2003-01-23 13:06:59 得分 0

后来我发现在7.0里面  
  只要停止服务后,直接删除日志文件  
   
  再次启动服务后,它竟然自动地给创建了一个(大小不到1m),数据库无影响  
   
   
  请指教Top

8 楼sdiezyw(威子)回复于 2003-01-23 20:54:08 得分 5

’大力‘的sp_attach_single_file_db   命令比较好使,我已经试过了!Top

9 楼zhmq()回复于 2003-02-04 12:20:38 得分 0

sp_attach_single_file_db   我也用过  
   
  上面的现象你们遇到过吗?Top

相关问题

  • sql server 2000 数据库附加兼sql server7升级2000
  • SQL Server 2000数据库文件附加的问题(急死了)!
  • SQL Server 2000 中附加数据库的方法征集
  • 如何用语句直接SQL SERVER数据库文件.MDF 附加到数据库中·
  • SQL“附加数据库”成了“只读”
  • sql server2000 数据库附加问题
  • 关于sql server数据库?
  • SQL Server数据库减肥
  • 连接数据库sql server
  • 发布SQL Server数据库

关键词

  • sql2000
  • 数据库
  • 文件
  • 语句
  • db
  • sql
  • 日志
  • originalsize
  • newsize
  • varchar

得分解答快速导航

  • 帖主:zhmq
  • tj_dns
  • xxcw
  • pengdali
  • z5wjz
  • sdiezyw

相关链接

  • SQL Server类图书

广告也精彩

反馈

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