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

Why This Error Happens

This error occurs because SQL Server 2025 maintains an internal differential base LSN (Log Sequence Number) that becomes invalidated whenever a new full backup is taken after a database was switched to or created under the Simple Recovery Model. Since the Simple Recovery Model does not support transaction log chaining in the same way as Full Recovery, SQL Server requires every differential backup to map to exactly one specific base, and if multiple full backups have occurred since the last differential cycle, the base reference becomes ambiguous. This conflict is typically triggered by automated maintenance plans running full backups on a schedule that overlaps with differential backup jobs, or by a database recovery model being changed mid-cycle without resetting the backup chain.

Step-by-Step Resolution Guide

Step 1: Verify the Current Recovery Model

  • Open SQL Server Management Studio (SSMS) and connect to your instance.
  • Run the following query to check the current model:
SELECT name, recovery_model_desc FROM sys.databases WHERE name = 'YourDatabaseName';
  • Confirm it is set to SIMPLE. If it should be FULL, change it immediately via ALTER DATABASE YourDatabaseName SET RECOVERY FULL;.

Step 2: Take a Fresh Full Backup to Reset the Base

  • Since differential backups rely on a single base, you must force a new baseline.
  • Execute a full backup using SSMS or T-SQL:
BACKUP DATABASE YourDatabaseName 
TO DISK = 'C:\SQLBackups\YourDatabaseName_Full.bak' 
WITH INIT, STATS = 10;
  • The INIT clause overwrites previous backup sets on the media, ensuring a clean single-base reference.

Step 3: Correct the Maintenance Plan Scheduling

  • Open SQL Server Agent in SSMS and navigate to Maintenance Plans.
  • Disable any overlapping jobs that trigger a “Full Backup” task between differential backup executions.
  • Ensure the job schedule follows a strict sequence: One Full Backup followed by sequential Differentials, without an intermediate full backup interrupting the chain.

Step 4: Retry the Differential Backup

  • Once the base is reset and scheduling is corrected, attempt the differential backup again:
BACKUP DATABASE YourDatabaseName 
TO DISK = 'C:\SQLBackups\YourDatabaseName_Diff.bak' 
WITH DIFFERENTIAL, STATS = 10;
  • Monitor the Windows Event Viewer (Application Log) for the recurrence of Event ID 3006.

Alternative or Verification Steps

  • To verify the fix, query msdb.dbo.backupset and check the is_damaged and differential_base_guid columns to ensure all differential backups now point to the same base GUID as the most recent full backup.
  • If the error persists, bypass the GUI and use a dedicated backup script (via SQLCMD) that explicitly checks DATABASEPROPERTYEX(DB_NAME(), 'Recovery') before executing the backup command to prevent scheduling race conditions.