考勤系统问题记录一:事务日志太大
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之前,备份一下日志