Challenge
Job reports warning "SQL VSS Writer is missing: databases will be backed up in crash-consistent state and transaction log processing will be skipped"Running vssadmin list writers shows that SqlServerWriter is not in the list.
Cause
There are different causes of the issue:- the SQL instance have databases with names ending in a space character.
- the account under which SQL VSS Writer service is running doesn't have sysadmin role on a SQL server
- SQL VSS Writer service stuck in an invalid state
Solution
Depending on a particular cause:- Please rename the database to a new name (without a space in it)
- Grant the SQL VSS Writer service user a sysadmin role (Instructions in KB here: https://www.veeam.com/kb1978)
- Restart SQL VSS Writer service (Instructions in KB here herehttps://www.veeam.com/kb2041)
- In the case of SBS machines that are also Domain Controllers, ensure that the SQL Writer is running as a domain administrator and not local system
- Allow the SQL Writer service account access to the Volume Shadow Copy service via the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl
If the DWORD value “NT SERVICE\SQLWriter” is present in this key, it must be set to 1.
If the Volume Shadow Copy service is running, stop it after changing this registry value. Do not disable it. - To check if your database has space in the name you can run the following query:
select name from sys.databases where name like '% 'If you notice any spaces in the database names, then you will need to remove the spaces from the database names.
More Information
Microsoft documentation states that the SQL Writer service must run as Local System.- In SQL Server 2008R2 and earlier, this means that the writer service account appears to SQL Server as “NT AUTHORITY\System”.
- In SQL Server 2012 and later, the writer service account appears to SQL Server as “NT Service\SQLWriter”.