metricsign
Start free
Critical severityresource

Power BI Refresh Error:
9002

What does this error mean?

The SQL Server transaction log is full — no new transactions can be committed until log space is freed.

Common causes

  • 1Log backup has not run (FULL or BULK_LOGGED recovery model) — log cannot auto-truncate
  • 2A long-running transaction is holding a log lock, preventing log truncation
  • 3Log file has no room to grow (disk full or max size limit reached)

How to fix it

  1. 1Step 1: Check why the log cannot truncate: SELECT name, log_reuse_wait_desc FROM sys.databases WHERE name = 'yourdb'; — log_reuse_wait_desc shows the reason (LOG_BACKUP, ACTIVE_TRANSACTION, etc.).
  2. 2Step 2: If log_reuse_wait_desc = LOG_BACKUP, run a log backup immediately: BACKUP LOG [yourdb] TO DISK = 'NUL'; (or to a real backup device).
  3. 3Step 3: If disk is full, add a new file or expand the log file to a larger disk: ALTER DATABASE [yourdb] MODIFY FILE (NAME = yourdb_log, MAXSIZE = UNLIMITED);

Frequently asked questions

How do I quickly free log space without a backup?

Only if the database is in SIMPLE recovery model: CHECKPOINT; DBCC SHRINKFILE (yourdb_log, 1); — but this does not work in FULL recovery. In FULL recovery, you must take a log backup first.

How do I prevent error 9002 in the future?

Schedule regular log backups (every 15–60 minutes for busy databases). Monitor log space with: SELECT name, log_size_mb = size*8/1024.0, log_used_mb = FILEPROPERTY(name,'SpaceUsed')*8/1024.0 FROM sys.databases;

Can I switch to SIMPLE recovery model to avoid log backups?

You can, but SIMPLE recovery means you can only restore to the last full or differential backup — not to a point in time. For production databases, FULL recovery with regular log backups is the correct approach.

Official documentation: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-9002-database-engine-error

Other resource errors