DBAtlas · 数据库运维图谱

9002: The transaction log for database is full due to ...(数据库的事务日志已满,原因为 ...)

SQL Server

含义

数据库的事务日志文件已满,新事务无法记录日志。数据库拒绝写入,表现得如同只读。

原因

FULL 恢复模式下没有日志备份、长时间打开的事务、复制/AlwaysOn 延迟,或日志无法增长(禁用了自动增长或磁盘已满)。log_reuse_wait_desc 会显示原因。

解决方法

检查 sys.databases 中的 log_reuse_wait_desc。如果在 FULL 模式下为 LOG_BACKUP,执行日志备份(BACKUP LOG)。如果为 ACTIVE_TRANSACTION,找到打开的事务并提交/回滚(DBCC OPENTRAN)。释放磁盘空间或修正日志文件的自动增长设置。如果日志确实已经增长,在备份后用 DBCC SHRINKFILE 收缩。如果不需要日志链,重新审视恢复模式。

在 DBAtlas 中打开 →

同一数据库的其他条目