宝马娱乐在线城-宝马娱乐在线

来自 互联网络 2020-03-13 06:18 的文章
当前位置: 宝马娱乐在线城 > 互联网络 > 正文

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

首先use [数据库名称];exec sp_helpfile;

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

使用sp_helpfile查询可知道log 文件的逻辑名称,然后就可以利用DBCC来减小LOG文件BACKUP LOG [数据库名] WITH TRUNCATE_ONLYdbcc shrinkfile ([log文件的逻辑名称],1)

方法一:

这个方法在MS SQL Server 2008 以及MS SQL Server 2008 R2中不再适用,会提示:TRUNCATE_ONLY is not a valid BACKUP option.

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

应当采取这样的操作方法:

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

复制代码 代码如下:-- 首先把数据库的恢复模式改为SimpleALTER DATABASE [数据库名] SET RECOVERY SIMPLE;GO-- 缩小log文件至1M,逻辑名称可以通过sp_helpfile拿到DBCC SHRINKFILE ([log文件逻辑名称], 1); GO-- 重置数据库的恢复模式ALTER DATABASE [数据库名] SET RECOVERY FULL;GO

但是以上语句中前两行在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

无效。

 

尝试方法三:  

图片 1图片 2代码

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

本文由宝马娱乐在线城发布于互联网络,转载请注明出处:SQL Server 2008如何压缩日志(log)文件?

关键词: