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。

总结一下:

  1. 改Recovery mode为Simple
  2. 用DBCC SHRINKFILE收缩日志

参考:http://experiencing-sql-server-2008.blogspot.com/2008/02/sql-server-2008-truncating-transaction.html

posted @ 2011-09-25 00:03  庚武  Views(1876)  Comments(0Edit  收藏  举报