清空SQLServer2005、2008日志的方法

码农公社  210.net.cn   210= 1024  10月24日一个重要的节日--码农(程序员)节

SQL2005 清空日志的方法: 

Backup Log DNName with no_log 

go 

dump transaction DNName with no_log 

go 

USE DNName  DBCC SHRINKFILE (2) 

Go


SQL2008 清空日志的方法: 

SQL2008中清除日志须在简单模式下进行。 

USE [master]     

GO     

ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT     

GO     

ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式     

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


优点:

此方法消耗时间少,90GB的日志在几分钟即可清除完毕。 

缺点: 

常用的话会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。 

此方法的使用情境:

当系统的日志文件异常增大或者备份LOG时间太长,可能影响生产的情况。

评论