考勤系统问题记录一:事务日志太大

1.磁盘时FAT格式(fat32的格式数据文件不能大于4G)

2.將日志文件以M為單位增長,不要以百分比

3.压缩日志,步骤:

  a.备份日志
  BACKUP LOG AP_Attendance TO DISK = N'C:\AP_Attendance事务日志.bak'
  go
   b.执行 checkpoint
   c.压缩日志

   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
  d.压缩无效的异常检查: select log_reuse_wait_desc from sys.databases where name = 'databasename' 如果上述步骤不能成功,则执行此语句,查明原因并解决后,再重新执行以上步骤。

--查看日志空闲空间、日志延迟原因

DBCC SQLPERF(LOGSPACE) 
GO 
SELECT name, recovery_model_desc, log_reuse_wait,log_reuse_wait_desc
FROM sys.databases 
GO


PS:

一、在第一次shrink之前,要对数据库进行一次完整备份(或者说是仅仅对日志备份,这一点我忘了,你可以尝试一下)
二、在每一次shrink之前,备份一下日志

posted @ 2011-10-08 12:27  流失的痕迹  阅读(367)  评论(0编辑  收藏  举报