数据库日志太大如何快速删除

sql2005 简单恢复模式下 使用backup log with NO_log是否没有意义?
backup, log, 模式
-- 第一步:清空日志 
DUMP TRANSACTION [YZGA] WITH NO_LOG 
-- 第二步:截断事务日志 
BACKUP LOG [YZGA] WITH NO_LOG 
-- 第三步:收缩数据库 
DBCC SHRINKDATABASE([YZGA])

==========================================================

日志:

不推荐使用 BACKUP LOG WITH TRUNCATE_ONLY 或 WITH NO_LOG。应使用简单恢复模式自动截断事务日志。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。


NO_LOG  | TRUNCATE_ONLY
通过放弃活动日志以外的所有日志,无需备份复制日志即可删除不活动的日志部分,并截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。


注意:  
在 SQL Server 的未来版本中将删除该选项。应避免使用该选项进行新的开发工作,并计划修改当前使用它的应用程序。 
 


使用 NO_LOG 或 TRUNCATE_ONLY 截断日志后,记录在日志中的更改不可恢复。为了进行恢复,请立即执行 BACKUP DATABASE 以执行完整备份或完整差异备份。

注意:  
尽管可用该选项手动截断事务日志,但是我们极力建议您不要这样做,因为这会将日志链断开。在下一次完整备份或完整差异备份之前,将无法为数据库提供媒体故障保护。只在非常特殊的情况下才手动截断日志,并立即创建数据备份。 

 

注意:  
如果不想进行日志备份,请将数据库设置为简单恢复模式。

(SQL2008):

SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

方案一:完全命令模式

USE [master]

    GO

    ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT

    GO

    ALTER DATABASE DNName SET RECOVERYSIMPLE   --简单模式

    GO

    USE DNName 

    GO

    DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)

    GO

    USE [master]

    GO

 

    ALTER  DATABASE DNName SET RECOVERY FULL WITH NO_WAIT

    GO

 

    ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式

    GO


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值