When backup solutions leverage Windows Volume Shadow Copy Service (VSS) without SQL Server awareness,
they essentially capture raw .mdf and .ldf files at a frozen moment. While SQL Server's storage engine
is designed for crash recovery, this approach differs fundamentally from native SQL backup mechanisms.
SQL Server's write-ahead logging ensures that transactionally consistent states can be reconstructed from:
1. The database file snapshot (MDF)
2. The corresponding log chain (LDF)
3. The active transaction log portion in memory
The recovery process mirrors what happens during server restart after a crash.
While technically recoverable, non-VSS-aware backups have significant operational constraints:
- No point-in-time recovery capability (only crash-consistent state)
- Potential log file growth if snapshot occurs during heavy transactions
- No built-in checks for page-level corruption
- Lack of metadata about backup timing in SQL Server's msdb
To validate a VSS snapshot backup, use this T-SQL after restoring files:
RESTORE DATABASE [TestRestore]
FROM DISK = 'C:\backups\vss_snapshot.bak'
WITH MOVE 'DataFile' TO 'C:\data\TestRestore.mdf',
MOVE 'LogFile' TO 'C:\data\TestRestore.ldf',
RECOVERY, REPLACE, STATS = 5;
DBCC CHECKDB ('TestRestore') WITH NO_INFOMSGS, ALL_ERRORMSGS;
The CHECKDB operation is particularly crucial for VSS-based backups.
For production environments, consider these VSS-aware approaches:
Solution | SQL Integration | Advantage |
---|---|---|
Veeam | Native VSS writer | Application-aware processing |
Commvault | SQL VDI interface | Block-level incremental |
Windows Server Backup | Basic VSS | Built-in to Windows |
During snapshot creation, SQL Server experiences:
- Brief I/O freeze (typically < 2 seconds)
- Temporary transaction log growth
- Increased memory pressure from copy-on-write operations
Monitor with:
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);
SELECT log_reuse_wait_desc FROM sys.databases;
When backup applications leverage Windows Volume Shadow Copy Service (VSS) without specific SQL Server awareness, they capture raw database files (MDF/NDF/LDF) at a single instant. SQL Server's storage engine is designed with crash recovery mechanisms that ensure transactional consistency even when files are copied mid-operation.
SQL Server uses write-ahead logging (WAL) and checksum verification to maintain database integrity. A VSS snapshot backup will typically result in a database that:
- Contains all committed transactions up to the snapshot moment
- Automatically recovers using the transaction log during restore
- May require recovery time proportional to transaction log size
While technically possible, several factors affect reliability:
-- Example check for database state after VSS restore
SELECT
name AS [Database],
state_desc AS [State],
is_in_standby AS [Standby]
FROM sys.databases
WHERE state != 0; -- Check for non-online databases
VSS operations can cause temporary I/O freezes:
- Expect 2-10 second latency spikes during shadow copy creation
- Heavily loaded OLTP systems may experience timeouts
- Consider scheduling during low-activity periods
For mission-critical systems, combine VSS with:
-- Create a database snapshot for application-consistent backup
CREATE DATABASE Sales_Snapshot ON
(NAME = Sales_Data, FILENAME = 'D:\Backups\Sales_Data.ss')
AS SNAPSHOT OF Sales;
Always validate VSS backups using:
- DBCC CHECKDB after restore
- Point-in-time recovery tests
- Transaction log chain verification