SQL Server 2008如何压缩日志(log)文件?

原文地址为: SQL Server 2008如何压缩日志(log)文件?

在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,

方法一:

-- BigData为数据库名
DUMP   TRANSACTION  BigData  WITH  NO_LOG
BACKUP   LOG  BigData  WITH  NO_LOG
DBCC  SHRINKDATABASE(BigData )

执行以上语句可以快速压缩日志文件到1M。

但是以上语句中前两行在SQL Server 2008下无法执行 ,

第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”

第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”

第三行可以执行。但日志log文件没有任何变化。

原来SQL Server 2008 已经不再支持 DUMP TRANSACTIONBACKUP LOG WITH NO_LOG详情请看
  http://msdn.microsoft.com/zh-cn/library/ms187315%28SQL.90%29.aspx
  http://msdn.microsoft.com/zh-cn/library/ms186865.aspx 

sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。

SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。

尝试方法二:  

-- --Logical Files :
--
CMS1.5_Data
--
CMS1.5_Log
DBCC  SHRINKFILE (N ' CMS1.5_Log '  ,  1 )
GO

无效。

 

尝试方法三:  

代码
use   DB_NAME
sp_dboption 
DB_NAME , "trunc.  log   on  chkpt.", true
checkpoint
sp_dboption 
DB_NAME , "autoshrink", true

每一行指令请单独执行。其中的DB_NAME是指Database Name,在执行完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右

有没有更快的方法呢?

尝试方法四:(请提前备份文件!!)

1. Detach数据库。
2.删除log文件。
3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。

附图:

邀月工作室
邀月工作室

邀月工作室

邀月工作室

方法五(没有试过,请提前备份文件!!):

 
1. 停止 SQL Server 的服务
 
2. 使用删除 Log文件
 
3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。
方法六: (尘尘提供)

先设置恢复模式为“简单恢复”模式,再收缩:

USE  BigData ;
GO
ALTER   DATABASE  BigData
SET  RECOVERY SIMPLE; -- 设置简单恢复模式
GO
DBCC  SHRINKFILE (BigData_Log,  1 );
GO
ALTER   DATABASE  BigData
SET  RECOVERY  FULL ; -- 恢复为原模式
GO  

 方法七: (尘尘提供)

 

USE  BigData;
GO
BACKUP   LOG  DATABASENAME  TO   DISK = ' d:\test.bak '
--  Shrink the truncated log file to 1 MB.
DBCC  SHRINKFILE (Bigdata_Log,  1 );
GO

 

 

 


转载请注明本文地址: SQL Server 2008如何压缩日志(log)文件?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值