Troubleshooting Guide: Error 7928 – Database Snapshot for DBCC CHECKDB Could Not Be Created
Why This Error Happens
This error occurs when SQL Server 2025 attempts to create an internal database snapshot to run consistency checks (DBCC CHECKDB) online, but the underlying file system cannot support the sparse file or NTFS alternate data stream technology required for snapshots. This typically happens when database files reside on a ReFS volume with incompatible configurations, a network share (UNC path/SMB), or a volume formatted with FAT32 instead of NTFS. It can also occur if the SQL Server service account lacks the necessary NTFS permissions on the folder to create the temporary sparse snapshot files alongside the primary data files.
Step-by-Step Resolution Guide
Step 1: Verify the Underlying File System Format
- Open File Explorer on the Windows Server 2025 host and right-click the drive letter containing your
.mdf/.ndffiles (e.g.,D:\SQLData). - Select Properties and confirm the File System field reads NTFS.
- If the volume shows FAT32 or a non-standard format, you must migrate the database files to a supported NTFS volume, as sparse files are not supported otherwise.
- Run
fsutil fsinfo volumeinfo D:in an elevated Command Prompt to check for the “Supports Sparse Files” attribute explicitly.
Step 2: Check and Correct NTFS Permissions
- Navigate to the folder containing the database files (e.g.,
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA). - Right-click the folder, go to Properties > Security, and verify the SQL Server service account (e.g.,
NT Service\MSSQLSERVER) has Full Control. - Apply the permissions and ensure they propagate to all subfolders by checking Replace all child object permission entries.
- Restart the SQL Server service via
services.mscto ensure the new permissions are loaded into the session.
Step 3: Disable Conflicting ReFS Integrity Streams
- If running database files on a ReFS volume (common in Windows Server 2025 setups), native file integrity streams can sometimes conflict with SQL Server’s alternate stream requirements.
- Open PowerShell as Administrator and run:
Get-Item -Path D:\SQLData\yourdatabase.mdf | Get-FileIntegrity. - If integrity streams are causing a conflict, disable them specifically for the SQL directory using:
Set-FileIntegrity -Path "D:\SQLData" -Enable $false.
Step 4: Manually Force an Offline Check (Workaround)
- If the volume constraints cannot be immediately resolved, run the integrity check with the explicit offline flag to bypass the snapshot requirement entirely.
- Execute the following T-SQL command:
DBCC CHECKDB('YourDatabaseName') WITH TABLOCK; - Note that
TABLOCKacquires exclusive locks on the database, causing blocking for other users, so this should be scheduled during a maintenance window.
Alternative or Verification Steps
- Verify the Fix: Re-run
DBCC CHECKDB('YourDatabaseName')without theTABLOCKhint. If the command completes without Error 7928, the snapshot creation was successful and the underlying volume issue is resolved. - Alternative Workaround: If the database files must remain on a network share or unsupported volume long-term, configure a SQL Server Agent job to permanently run
DBCC CHECKDBwith theWITH TABLOCKoption during off-peak hours to avoid interrupting production traffic.