SQL Server engine errors

SQL Server 9002 Transaction Log Full

9002
HighDatabase Engine

Transaction Log Full — the database transaction log is full and no writes are possible

What 9002 Means

The 9002 error on the SQL Server engine errors indicates transaction log full — the database transaction log is full and no writes are possible. This typically occurs due to log file has reached its maximum configured size with no auto-growth room.

Error 9002 is a critical database error that halts all write operations. The log will not truncate until the blocking condition (open transaction, missing log backup, etc.) is resolved.

Technical Background

SQL Server writes all changes to the transaction log before applying them to data files. The log can only be truncated (reused) after its contents have been backed up or are no longer needed for recovery.

In FULL recovery model, a transaction log backup truncates the inactive portion of the log, freeing space for reuse. In SIMPLE recovery, a checkpoint performs truncation automatically.

Common Causes

  • Log file has reached its maximum configured size with no auto-growth room
  • An open long-running transaction is holding the log and preventing truncation
  • Database is in FULL recovery model with no transaction log backups being taken

Typical Scenarios

  • FULL recovery model database where transaction log backups stopped running, allowing the log to grow until disk is exhausted
  • Bulk insert or large ETL job generating more log data than the log file can hold
  • Replication subscriber lagging far behind, preventing log truncation

What to Know

Error 9002 is a critical write-blocking condition where all writes to the affected database are halted. The log cannot be truncated — and therefore cannot be reused — until the blocking condition, such as an open transaction, missing log backup, or lagging replication subscriber, is removed.

Frequently Asked Questions

Common questions about SQL Server 9002 error

Query sys.databases and check the log_reuse_wait_desc column for the affected database. Common values are LOG_BACKUP (missing log backups), ACTIVE_TRANSACTION (open transaction), or REPLICATION (lagging subscriber).