删除sql server大容量日志的方法(三)

日期: 2008-07-27 作者:guosonger 来源:TechTarget中国 英文

  c.附加数据库:


  企业管理器–服务器–数据库–右键–附加数据库


  此法将生成新的LOG,大小只有500多K


  或用代码:


  下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。


  a.分离






&#101xec sp_detach_db @dbname = ’77169database’ 



  b.删除日志文件


  c.再附加






&#101xec sp_attach_single_file_db @dbname = ’77169database’, 
  @physname = ’c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf’ 



  5.为了以后能自动收缩,做如下设置:


  企业管理器–服务器–右键数据库–属性–选项–选择”自动收缩”


  –SQL语句设置方式:


  &#101xec sp_dboption ’数据库名’, ’autoshrink’, ’TRUE’


  6.如果想以后不让它日志增长得太大


  企业管理器–服务器–右键数据库–属性–事务日志


  –将文件增长限制为xM(x是你允许的最大数据文件大小)


  –SQL语句的设置方式:


  alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)


  ——————————————————————————————-


     /*–压缩数据库的通用存储过程


  压缩日志及数据库文件大小


  因为要对数据库进行分离处理


  所以存储过程不能创建在被压缩的数据库中 /*


      –调用示例
  





&#101xec p_compdb ’test’ 
  –*/ 
  use master –注意,此存储过程要建在master数据库中 
  go 
  if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[p_compdb]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) 
  drop procedure [dbo].[p_compdb] 
  GO 
  create proc p_compdb 
  @dbname sysname, –要压缩的数据库名 
  @bkdatabase bit=1, –因为分离日志的步骤中,可能会损坏数据库,所以你可以选择是否自动数据库 
  @bkfname nvarchar(260)=’ –备份的文件名,如果不指定,自动备份到默认备份目录,备份文件名为:数据库名+日期时间 
  as 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐