Deprecation of the VSS MSSQL plugin - Migration Instructions to the VDI MSSQL plugin

The VSS MSSQL plugin is being phased out due to its limitations therefore we recommend using the MSSQL VDI plugin instead. Unfortunately they are not compatible, therefore the two plugins must remain installed until the data in for the VSS MSQL plugin expires. Please find below some highlights on transtioning between the two plugins.

The MSSQL VDI plugin documentation offers to review all configuration options.

Requirements

  • MSSQL Server user with administrative credentials

  • MSSQL Server Instance name

  • Recommended: A list of the database names to backup

Job Configuration

  • Ideally create one job per database

  • Unlike cinclude/cexclude there is no need to refer to the virtual VSS writer path. The include/exclude parameters refer to database names or patterns. If a single database is to be copied the parameter database=DatabaseName is preferred. Please find some equivalent examples below:

  • Include just the database TestDB:

VSS MSSQL: Plugin = "vss:/MSSQL/ cinclude=*/TestDB cexclude=*"
VDI MSSQL: Plugin = "mssql: database=TestDB"
  • Include just databases database1 database2 and database3

VSS MSSQL: Plugin = "vss:/MSSQL/ cinclude=*/database1 cinclude=*/database2  cinclude=*/database3 cexclude=*"
VDI MSSQL: Plugin = "mssql: include=database1 include=database2 include=database3 exclude=*"
  • Just exclude database msdb from backup

VSS MSSQL: Plugin = "vss:/MSSQL/ cexclude=msdb"
VDI MSSQL: Plugin = "mssql: exclude=msdb"
  • If Instance name is different than the default it is necessary to configure the plugin with at least these parameters:

Plugin = "mssql: instance=SQLExpress hostname=."
  • Check if the recovery model of the databases as Simple recovery model only allows Full and Differential backups to set the default backup level accordingly, as Bacula’s default is incremental.

  • If the MSSQL server is an always-on cluster please refer to the section Always On Availability Groups in order to decide the backup strategy regarding primary/secondary replicas

Attention

The first job will be upgraded to a full backup The first MSSQL VDI backup will be a full regardless any pre-existing MSSQL VSS backup and there can be no further MSSQL VSS backup after the first MSSQL VDI backup.

Restore

Bacula is able to detect what plugin was used to perform the backup and act accordingly if just the fileset is changed using this procedure . The file tree is substantially different when using the new plugin. For the VSS MSQL plugin the tree looks like below:

/@MSSQL/SqlServerWriter/WSB-SQL08/BSYSTEST/database/c:/program files/microsoft sql server/mssql10_50.bstest/mssql/data/database

While the file tree for the MSSQL VDI plugin for the same database for the BSYSTEST instance looks like below:

/@mssql/BSYSTEST/database