SQL Server 2008 (2008 R2) 清理日志方法
突然发现某数据库的日志已经1.5G了,然而原来使用的截断日志的语句在2008中已经失效,在网上搜寻了一些方法,验证下面方法是有效的:
首先检查目标数据库的恢复模式:
SELECT NAME, recovery_model_desc FROM sys.databases
如果是Full,则需要改为Simple:
ALTER DATABASE Test SET Recovery simple
然后收缩日志文件:
DBCC SHRINKFILE (N'test_log' , 10)
第一个参数是日志文件名,第二个参数是目标文件大小,以M为单位。
第一个参数名可以用以下方法确定:
USE DreamFree2010
SELECT NAME, size FROM sys.database_files
如此即可,日志文件已经收缩到目标的10M。
总结一下:
- 改Recovery mode为Simple
- 用DBCC SHRINKFILE收缩日志
参考:http://experiencing-sql-server-2008.blogspot.com/2008/02/sql-server-2008-truncating-transaction.html