Использование SQL Server VSS Writer для бэкапов уровня СХД и гипервизора
- Ошибки системы резервного копирования виртуальных машин:
VSS Control: Failed to freeze database. - В журнале Application Windows Event Log фиксируются события с кодом
Event ID 8229 (A VSS writer has rejected an event with error 0x800423f4). - Служба
SQL Server VSS Writerпереходит в состояние[Failed]или[Waiting for completion]. - В логах SQL Server появляются предупреждения
I/O is frozen on databaseбез последующей разморозкиI/O was resumed.
1. Проверка состояния писателей VSS в командной строке Windows
vssadmin list writersВ выводе найдите блок Writer name: 'SqlServerWriter'. Параметр State должен быть [1] Stable, а Last error — No error.
2. Перезапуск службы SQL Server VSS Writer при зависании
net stop SQLWriter
net start SQLWriter3. Проверка привилегий учетной записи SQLWriter
Служба должна работать под системной учетной записью NT AUTHORITY\SYSTEM и иметь серверную роль sysadmin в самом SQL Server:
-- Проверка логина NT AUTHORITY\SYSTEM в SQL Server
SELECT name, is_srvrolemember('sysadmin', name) AS IsSysAdmin
FROM sys.server_principals
WHERE name = 'NT AUTHORITY\SYSTEM';4. Исправление конфликтов с базами данных с пробелами или спецсимволами в именах
SQL VSS Writer может падать при попытке заморозки баз, находящихся в режиме OFFLINE, RESTORING или с поврежденными именами файлов. Переведите неиспользуемые базы в ONLINE или удалите их.
Частые вопросы (FAQ)
Как SQL VSS Writer обеспечивает целостность базы данных при снапшоте?
Он временно блокирует запись новых транзакций на диск (I/O Freeze), сбрасывает грязные страницы из буферного пула (Checkpoint), дает сигнал гипервизору на создание моментального снимка, после чего мгновенно размораживает операции ввода-вывода (I/O Resume).
Почему VSS бэкапы могут ломать цепочку разностных бэкапов в SQL Server?
Если стороннее ПО бэкапа (например, агент виртуализации) делает обычный VSS Full Snapshot вместо VSS Copy-Only, сбрасывается бит дифференциального базиса (Differential Base LSN), что делает невалидными все последующие внутренние разностные бэкапы.
Сколько времени может длиться I/O Freeze при VSS снапшоте без падения тайм-аута приложения?
По умолчанию время заморозки не должно превышать 60 секунд. Если СХД не успевает создать снапшот за этот период, SQL Server принудительно прерывает заморозку и возвращает ошибку VSS_E_WRITERERROR_TIMEOUT.
Нужно ли запускать SQL Server VSS Writer, если бэкапы делаются только через T-SQL скрипты в maintenance plans?
Нет. Служба SQL Server VSS Writer необходима исключительно для внешних бэкап-решений уровня хоста, СХД, Windows Server Backup, Veeam B&R или Commvault.