Troubleshooting Guide: SQL Server Error 3454 — Recovery Checkpoint Message
Why This Error Happens
Error 3454 is not actually an error — it is an informational message logged by the SQL Server Database Engine during the recovery process, indicating that a checkpoint operation is being written to the specified database. This message typically appears in the SQL Server Error Log when a database starts up, fails over in an Always On Availability Group, or recovers after an unexpected shutdown, as part of normal crash recovery or standard checkpoint behavior. It becomes a point of concern for administrators primarily when it appears excessively or alongside actual errors, which may indicate underlying issues such as disk I/O latency, improper shutdowns, or misconfigured recovery intervals rather than the message itself being faulty.
Step-by-Step Resolution Guide
Step 1: Confirm the Message is Informational and Not Masking a Real Error
- Open the SQL Server Error Log via SQL Server Management Studio (SSMS) under Management > SQL Server Logs.
- Search for Error 3454 and check the surrounding log entries for Severity Level — this message is logged as a Level 10 (informational) message, not a Level 16+ severe error.
- Confirm there are no associated errors like 9001 (Log corrupt), 823, or 824 (I/O errors) near the same timestamp.
Step 2: Review the Recovery Interval and Checkpoint Configuration
- Run the following T-SQL query to check the current recovery interval setting:
EXEC sp_configure 'recovery interval (min)';
- If the value is set to 0 (automatic), SQL Server dynamically determines checkpoint frequency based on workload; consider manually tuning this if checkpoints are too frequent.
- Adjust using:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'recovery interval (min)', 5;
RECONFIGURE;
Step 3: Investigate Underlying Disk I/O or Improper Shutdown Causes
- Open Event Viewer (Windows Server 2025 / Windows 11) and navigate to Windows Logs > System to check for unexpected reboots or power failures correlating with the checkpoint message.
- Use
sys.dm_io_virtual_file_statsDMV to check for I/O stalls on the database files:
SELECT * FROM sys.dm_io_virtual_file_stats(DB_ID('YourDatabaseName'), NULL);
- If disk latency is high, migrate database files to faster storage (e.g., NVMe SSD) or verify the storage subsystem via Performance Monitor using the
Avg. Disk sec/ReadandAvg. Disk sec/Writecounters.
Step 4: Suppress Verbose Logging (Optional, Low-Priority Fix)
- If the message is cluttering logs excessively during routine operations, enable Trace Flag 3226 to suppress successful backup messages and reduce log noise (Note: this does not suppress 3454 directly but cleans related checkpoint/backup chatter).
- Add the startup parameter via SQL Server Configuration Manager > SQL Server Services > Right-click SQL Server instance > Properties > Startup Parameters: add
-T3226. - Restart the SQL Server service for the change to take effect.
Alternative or Verification Steps
- Verify the fix by monitoring the SQL Server Error Log for 24–48 hours post-configuration changes; the message should only appear during legitimate startup/recovery events, not during normal runtime.
- If checkpoints are excessively frequent even after tuning the recovery interval, use
sys.dm_os_performance_countersto monitor the “Checkpoint pages/sec” counter and correlate with workload patterns to rule out application-level transaction log bloat.