Skip to content

Microsoft SQL Server

Full, differential and transaction-log SQL Server backups with point-in-time recovery, plus automatic database discovery across instances. On Windows the plugin streams through SQL Server VDI; on Linux it uses a TDS session with FIFO pipes.

  • Job level Full runs a full database backup, Differential a differential backup, Incremental a transaction-log backup
  • Point-in-time restore (stop_at=, stop_at_mark=, stop_before_mark=)
  • Automatic database discovery (database= glob, default *)
  • Multi-stream backups (stripes=) and several databases in parallel (parallel_dbs=)

Add the plugin to a Content on the client you want to protect:

Content {
Name = "mssql"
Include {
Options { Signature = SHA256 }
Plugin = "mssql: instance=MSSQLSERVER database=* stripes=4 parallel_dbs=2 checksum=yes"
}
}

All parameters are space-separated key=value pairs. The most used ones:

ParameterValuesMeaning
instanceinstance nameInstance to protect (repeatable); all_instances covers every local instance.
database (or db)glob (default *)Databases to back up.
exclude / includenames or globsRefine the selection.
include_system_dbslistSystem databases to add to the selection.
authtypewindows (default), server, azure_ad, managed_identityLogin type; server uses user= and password= (or passfile=).
stripes1 to 64Number of parallel backup streams per database.
parallel_dbsnumberDatabases backed up concurrently.
compressnative, zstd, lz4, gzip, noneCompression (default: SQL native plus zstd).
copyonlyyes, incremental, allTake COPY_ONLY backups that do not disturb an existing backup chain.
checksumyes/noWITH CHECKSUM backups.
verify_backupyes/noVerify the backup after it is taken.

There is no pit= parameter: point-in-time recovery comes from the transaction-log backups (Incremental level) and is selected at restore time.

Restore the whole database, or stop at a point in time with restore options such as:

database = Sales
stop_at = 2026-04-25 15:30:00
recovery = yes

stop_at_mark= and stop_before_mark= stop at a marked transaction, point_in_time_tz= sets the time zone used for stop_at (default UTC), and mode=new_db or mode=to_disk restore to a new database or to backup files on disk.

See also: Restore, Instant Recovery & V2V.