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

Troubleshooting Guide: SQL Server Error 11803 — RESTORE Detected Corrupted Pages in Backup Set

Why This Error Happens

Error 11803 occurs when SQL Server’s backup verification process (RESTORE VERIFYONLY or the internal page-checksum validation) detects that one or more data pages in the backup set do not match their expected checksum values. This is typically caused by underlying storage corruption (disk, SAN, or Azure Blob storage transient faults), a failing I/O subsystem, or memory errors on the server that corrupted pages before or during the backup write operation. In Azure-integrated backup scenarios, this can also surface due to incomplete or interrupted uploads to Azure Blob Storage that silently corrupt the backup file in transit.

Step-by-Step Resolution Guide

Step 1: Confirm and Isolate the Corruption

  • Run DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS; to identify whether corruption exists in the live database or only in the backup set.
  • Check the SQL Server error log (C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG) for accompanying messages like Error 824 or 825, which indicate I/O-level page corruption.
  • Review Windows Event Viewer (Windows Logs > System) for disk or controller errors around the backup timestamp.

Step 2: Validate the Backup File Integrity

  • Run RESTORE VERIFYONLY FROM DISK = 'D:\Backups\YourDB.bak'; to confirm whether the .bak file itself is corrupted versus the source database.
  • If backing up directly to Azure Blob Storage, re-download the backup file locally and re-run the verification to rule out network-transit corruption.
  • Compare file size and checksum of the backup file against the original upload log to detect truncation.

Step 3: Repair or Rebuild the Source Data

  • If DBCC CHECKDB confirms corruption in the live database, restore from the last known good backup using RESTORE DATABASE YourDB FROM DISK = 'D:\Backups\LastGood.bak' WITH REPLACE;.
  • If no clean backup exists, run DBCC CHECKDB ('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS) only as a last resort, after taking a full file-level copy of the current .mdf/.ldf files.
  • Check and update storage drivers/firmware on Windows Server 2025, since outdated SAN/RAID controller drivers are a common cause of silent page corruption.

Step 4: Re-run the Backup with Checksum Enabled

  • Re-issue the backup using BACKUP DATABASE YourDB TO DISK = 'D:\Backups\YourDB_New.bak' WITH CHECKSUM, STATS = 10; to force validation during the write.
  • Ensure the target disk (local or the staging drive before Azure upload) has no pending SMART errors via Get-PhysicalDisk | Get-StorageReliabilityCounter in PowerShell.

Alternative or Verification Steps

  • Run RESTORE VERIFYONLY FROM DISK = 'D:\Backups\YourDB_New.bak' WITH CHECKSUM; on the newly created backup — if it completes with no errors, the fix is verified.
  • If corruption persists across multiple backup attempts, treat it as a hardware-level issue: run chkdsk D: /f /r on the backup volume and consider migrating the backup staging location to a different physical disk before retrying the Azure upload.