Troubleshooting Guide: Error 3620 — Automatic Checkpointing Disabled Due to Log Space
Why This Error Happens
This error occurs when the transaction log for a database fills up completely, preventing SQL Server from writing the internal records needed to perform an automatic checkpoint. It is typically caused by a long-running or uncommitted transaction holding the log open, log file growth being capped by a restrictive MAXSIZE setting, or the disk volume hosting the .ldf file running out of physical space. Until the log is truncated or expanded, SQL Server 2025 suspends automatic checkpointing to protect database consistency, requiring manual intervention from the database owner.
Step-by-Step Resolution Guide
Step 1: Identify the Log Space Consumer
- Run
DBCC SQLPERF(LOGSPACE);to confirm the percentage of log space used for the affected database. - Query
sys.databasesusinglog_reuse_wait_descto see why the log isn’t being reused (e.g.,ACTIVE_TRANSACTION,LOG_BACKUP,REPLICATION). - Check for long-running open transactions with
DBCC OPENTRAN('YourDatabaseName');and note any session IDs (SPIDs) holding the log active.
Step 2: Free Up Log Space Immediately
- If the database is in Full or Bulk-Logged recovery model and no backups are running, perform a transaction log backup:
BACKUP LOG [YourDatabaseName] TO DISK = 'E:\SQLBackups\YourDatabaseName_log.trn'; - If disk space is physically exhausted on the volume (commonly
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\), move or delete unrelated files, or add additional capacity via Windows Server 2025 Disk Management. - If an orphaned or long-running transaction is blocking log reuse, consider killing the offending SPID identified in Step 1 using
KILL <SPID>;after confirming it is safe to terminate.
Step 3: Expand or Reconfigure the Log File
- Open SQL Server Management Studio (SSMS), right-click the database, select Properties, then navigate to the Files page.
- Increase the
MAXSIZEsetting on the log file (YourDatabaseName_log.ldf) or set it to “Unrestricted File Growth” if space allows. - Alternatively, run a T-SQL command to manually grow the file:
ALTER DATABASE [YourDatabaseName] MODIFY FILE (NAME = YourDatabaseName_log, SIZE = 5120MB); - Ensure the growth increment (
FILEGROWTH) is set to a fixed MB value rather than a percentage to avoid unpredictable expansion delays.
Step 4: Force a Manual Checkpoint
- Once log space has been freed or expanded, run
CHECKPOINT;against the affected database to clear the warning state. - Confirm that automatic checkpointing has resumed by checking the SQL Server Error Log for a follow-up message indicating normal checkpoint activity.
- Re-run
DBCC SQLPERF(LOGSPACE);to verify the log space percentage has dropped significantly.
Alternative or Verification Steps
- Verify the fix by monitoring the SQL Server Error Log (via SSMS > Management > SQL Server Logs) for the absence of further Error 3620 entries over the next 24 hours.
- If the issue recurs frequently, consider switching the database recovery model to Simple (if point-in-time recovery is not required) using
ALTER DATABASE [YourDatabaseName] SET RECOVERY SIMPLE;, or implement a scheduled log backup job via SQL Server Agent to prevent future log growth issues.