SQL Server engine errors
SQL Server 9002 Transaction Log Full
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).