Troubleshooting Guide: SQL Server Error 3060 – Restart-Checkpoint File Corruption
Why This Error Happens
Error 3060 occurs when SQL Server performs a RESTORE operation using the WITH RESTART option, and the restart-checkpoint file it relies on to resume the sequence has become corrupted or truncated. This typically happens due to an unexpected interruption during the backup/restore process, such as a disk I/O failure, a network drop during a restore from a remote share, or insufficient disk space causing the checkpoint file to be written incompletely. Since the checkpoint file no longer accurately reflects the state of the restore sequence, SQL Server cannot safely resume and recover the database from that point.
Step-by-Step Resolution Guide
Step 1: Verify Disk Space and I/O Health
- Check the drive hosting the restart-checkpoint file (usually in the default backup directory or a custom path specified in the
RESTOREstatement) for available free space. - Run
Get-PSDrivein PowerShell on Windows Server 2025 to confirm the target volume isn’t near capacity. - Review Windows Event Viewer under Windows Logs > System for Disk or NTFS warning/error events that coincide with the restore timestamp.
Step 2: Discard the Corrupted Checkpoint and Restart the Full Restore Sequence
- Since the checkpoint file is unusable, you cannot resume; you must restart the entire
RESTOREsequence from the full backup. - Delete or rename the corrupted checkpoint file (commonly named with a
.ckpextension) from its directory, e.g.,C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Backup\. - Re-run the full restore chain starting with
RESTORE DATABASE [YourDB] FROM DISK = 'FullBackup.bak' WITH NORECOVERY, followed by any differential/log backups.
Step 3: Remove the WITH RESTART Clause for a Clean Restore
- If the restore sequence is short enough to complete in one session, omit
WITH RESTARTentirely to avoid checkpoint file dependency. - Use
RESTORE DATABASE [YourDB] FROM DISK = 'FullBackup.bak' WITH RECOVERYonly after all differential and log files have been applied in sequence.
Step 4: Validate Backup Media Integrity
- Run
RESTORE VERIFYONLY FROM DISK = 'FullBackup.bak'to confirm the backup file itself is not corrupted before attempting restore again. - If verification fails, pull a backup copy from a secondary storage location or offsite repository (Azure Blob, tape, or NAS snapshot).
Step 5: Check Permissions on the Backup/Checkpoint Directory
- Confirm the SQL Server service account has full Read/Write/Modify permissions on the backup directory via Properties > Security in File Explorer, or
icacls "C:\Backup Path" /grant "NT SERVICE\MSSQLSERVER":(OI)(CI)F. - Insufficient permissions can prevent the checkpoint file from being written correctly, leading to repeated corruption.
Alternative or Verification Steps
- After restarting the restore sequence, confirm success by querying
SELECT state_desc FROM sys.databases WHERE name = 'YourDB';— it should returnONLINEonce recovery completes. - If corruption persists across attempts, move the backup files to local SSD storage (avoiding network shares) and retry, as network latency/disruption is a common root cause of checkpoint file corruption.