微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver 压缩日志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, "trunclog on chkpt.", true
checkpoint
sp_dboption 
DB_NAME, "autoshrink", true

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

有没有更快的方法呢?

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

1. Detach数据库
2.
删除log文件
3.
附加数据库,选移除log文件,此时sql Server自动重新建立一个512KLog 文件

附图:


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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐