SQL Server backup
An App-consistent job for SQL Server captures each database's data and log files at a quiesced instant through the SqlServerWriter — the whole box, application-consistent — without disturbing native SQL backups.
Create the job #
- Jobs → New Job → App-consistent, choose the machine, workload SQL Server databases, Discover on machine. Every instance's databases are listed as
MACHINE\INSTANCE\database. - Tick the databases, or none for all of them including ones created later. System databases (
master,model,msdb) are listed and can be included. - Destination and schedule.
Copy-only, deliberately #
A VSS full backup tells SQL Server a backup has happened and resets the differential base, which silently breaks a DBA's point-in-time restore chain. Caryvane always requests a copy-only snapshot: SQL Server quiesces the database and hands over consistent .mdf/.ldf files, but records nothing. Native BACKUP DATABASE jobs, log shipping and differentials carry on exactly as before.
What this is: a consistent copy of every database on a machine, every night, in your storage, restorable by attaching. What it is not: a replacement for native transaction-log backups where minute-level point-in-time recovery is required — keep those, and back up their output folder with a Files job.
What a run uploads #
Each database's data files and log files, under <destination>/vss/<instance>\<database>/<drive>/<original path>. A database whose files sit on two volumes is captured across both in one snapshot set.
Restore #
Bring the files back to a folder the SQL service account can read, then attach:
CREATE DATABASE [Sales]
ON (FILENAME = 'D:\Restore\Sales.mdf'), (FILENAME = 'D:\Restore\Sales_log.ldf')
FOR ATTACH;
Because the capture was copy-only, native differential and log backups taken after it can still be applied to a native full taken earlier; the Caryvane copy stands alone as of its snapshot time.
Requirements #
- The SQL Server VSS Writer service must be running (it is installed with SQL Server; check
Get-Service SQLWriter). - The agent runs as SYSTEM, which the writer accepts; no SQL login is needed.
- Databases in an offline or recovering state are reported by the writer as unavailable and skipped, with the name in the log.