加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 压缩日志log

发布时间:2020-12-12 14:15:55 所属栏目:MsSql教程 来源:网络整理
导读:在 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 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会自动重新建立一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读