How to fix Error 3454 on Windows Server 2025 / Windows 11

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_stats DMV 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/Read and Avg. Disk sec/Write counters.

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_counters to monitor the “Checkpoint pages/sec” counter and correlate with workload patterns to rule out application-level transaction log bloat.