> 数据库 > SQL Server 2008 >

SQL Server 2008收缩日志文件

1 使用背景                  
 由于数据库的恢复模式被设置为“完全”,导致日志文件随着操作日益增大,以至于占用过多的磁盘空间
       


2 解决方法                  
 使用命令dbcc shrinkfile可以收缩数据日志文件       
                      
  use master                  
  go                    
  alter database 数据库名 set recovery simple with no_wait 
  go                    
  alter database 数据库名 set recovery simple --简单模式  
  go                    
  use 数据库名                 
  go                    
  dbcc shrinkfile(N'数据库名_log',10)        
  go                    
  use master                 
  go                    
  alter database 数据库名 set recovery full with no_wait  
  go                    
  alter database 数据库名 set recovery full  --还原为完全模式
  go                    
                      
 注意:                   
  A. dbcc shrinkfile(N'数据库名_log',10)中的数据库名_log是逻辑名称,而不是实际文件名(个别情况下,逻辑名称/实际文件名不一致)

        逻辑名称取得方法:选择数据库,右键"属性",左侧选择"文件",右侧显示的"数据库文件"中"逻辑名称"列
  B. 关于dbcc shrinkfile的参数说明,见"dbcc shrinkfile参数说明"


 

说明:优点:此清除日志所运行消耗的时间短。

缺点:不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。

此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。



(责任编辑:IT)