当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我现在是在jsp页面中使用了一个javabean <jsp:usebean id="monitor" scope="application" class="java.util.hashmap" /> 利用这个bean来获取session中的用户名,用户在线状态等参数 我在工程中创建了一个hashmapping类,一个s......
    摘要: 怎么才能实现 ipconfig /renew,ipconfig /release这两个功能 ? 本来98上有 winipcfg这个程序,但在2000中没有了,只能使用 ipconfig 这个命令行命令了,希望你有这方面的代码或者办法,如果是 调用 dos命令就不必了,谢谢 据说vc中含有这方面的例子,vc7倒是有一个iprenewaddress函数,但我没有找到,谢谢了 ......


SQl的日志文件不断增大,如何删除掉他们,通过程序如何实现

题目

NO.1   作者: pengdali

清空日志  
  DUMP     TRANSACTION     库名     WITH     NO_LOG

NO.2   作者: CrazyFor

清空日志:  
  DUMP   TRANSACTION   库名   WITH   NO_LOG  
   
  DBCC   SHRINKFILE(   日志文件名,新的大小数值型如1)

NO.3   作者: happydreamer

 
  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  
     
   
   
   
  清空日志  
  DUMP     TRANSACTION     @DataBaseName     WITH     NO_LOG      
     
  DBCC     SHRINKFILE(     @LogoFileName,@NewSize)  
   
   
   
   
   
  --假设test2为数据库名称   日志已经很大的时候用    
  方法一此方法适用于7.0和2000。    
   
  1、在查询分析器中执行:   exec   sp_detach_db   DB_Name,true    
   
  2、在我的电脑中将日志的物理文件xxx_Log.LDF改名。    
   
  3、在查询分析器中执行:   exec   sp_attach_single_file_db   DB_Name,C:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\DB_Name.MDF    
   
  4、如果上一步成功,将步骤2中改名后的文件删除。如果上一步不成功,改回原来的文件名,用sp_attach_db将数据库附加到服务器,然后用方法二。    
   
  方法二    
   
  6.X中   DUMP   TRANSACTION   test2   with   NO_LOG   DUMP   TRANSACTION   test2   with   TRUNCATE_ONLY   将上面的语句多次执行,直到日志缩小。7.0和2000中   backup   log   test2   with   NO_LOG   backup   log   test2   with   TRUNCATE_ONLY   DBCC   SHRINKDATABASE(test2)   将上面的语句多次执行,直到日志文件缩小。上面的方法治标不治本,标本兼治要用下面的方法。    
   
  方法三:    
   
  --6.X和7.0中改为日志处于截断模式,2000中恢复模型改为简单恢复   exec   sp_dboption   test2,trunc.   log   on   chkpt.,on   --7.0和2000中设为自动收缩,6.x中不用执行。   exec   sp_dboption   test2,autoshrink,on   通常用于测试环境。    
   
  方法四:   --7.0中改为日志不处于截断模式,2000中恢复模型改为完全恢复   exec   sp_dboption   test2,trunc.   log   on   chkpt.,off   --7.0和2000中设为自动收缩,6.x中不用执行。   exec   sp_dboption   test2,autoshrink,on   建立作业,每半个小时一次日志备份,每天一次完全数据库备份。   7.0和2000中:在Log收缩到正常大小后,将autoshrink选项设置为off。通常用于真实环境。   在产品化系统中将autoshrink选项设置为开启状态并非明智之举,这是因为,当您的系统正在忙于完成其它任务时,autoshrink选项可能会同时启动,从而降低系统运行速度。然而,对于那些数据库管理员无暇估计并且数据库尺寸有可能在您毫无察觉的情况下超出控制范围的桌面或远程系统来说,开启这一选项却是一种非常有效的措施。   收缩事务日志   在下列情况下,日志文件的物理大小将减少:    
   
  *执行   DBCC   SHRINKDATABASE   语句时。    
   
  *执行引用日志文件的   DBCC   SHRINKFILE   语句时。    
   
  *自动收缩操作发生时。   日志收缩操作依赖于最初的日志截断操作。日志截断操作不减小物理日志文件的大小,但减小逻辑日志的大小,并将没有容纳逻辑日志任何部分的虚拟日志标记为不活动。日志收缩操作会删除足够多的不活动虚拟日志,将日志文件减小到要求的大小。   按下面任一方式控制事务日志的大小:    
   
  *在维护日志备份序列时,调度   BACKUP   LOG   语句按间隔发生,以使事务日志不致增长到超过预期的大小。    
   
  *当不维护日志备份序列时,指定简单恢复模式。   详情请参考   MS   SQL   Server   2000   联机丛书:   目录-->   SQL   Server构架-->数据库构架-->物理数据库构架-->事务日志构架-->收缩事务日志   目录-->   SQL   Server构架-->数据库构架-->物理数据库构架-->事务日志构架-->截断事务日志  
   
   
   
   
  或者你可以用管理->数据库维护计划来做  
  选择数据库->从数据库文件中删除未使用的空间  
  当数据库的大小超过n   MB   时收缩数据库   保留   10   %   的数据空间作为可用空间,这样可以调度执行,不需要手工操作了

NO.4   作者: john1219

按照一下步骤:  
   
  1.     EXEC   sp_detach_db   @dbname   =   pubs  
   
  2.     删除pubs_log.ldf  
   
  3.     EXEC   sp_attach_single_file_db   @dbname   =   pubs,    
  @physname   =   c:\mssql7\data\pubs.mdf  
 

NO.5   作者: mjhnet

john1219(john)   的方法不是很好,要离线,又危险,还是先作备份的好


    摘要: sql查询语句问题:有人知道如何用sql语句返回数据库myexample中所有表的表名吗? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE