- Перерегистрация компонентов VSS (Volume Shadow Copy Service) в Windows Server
- Windows Server backup may fail because of the SQL Server VSS writer
- Symptoms
- Cause
- Resolution
- cлужба «Модуль записи SQL» SQL Writer Service
- Назначение Purpose
- служба «Теневое копирование томов» Volume Shadow Copy Service
- Интерфейс виртуальных устройств резервного копирования (VDI) Virtual Backup Device Interface (VDI)
- Разрешения Permissions
- Компоненты Features
Перерегистрация компонентов VSS (Volume Shadow Copy Service) в Windows Server
Большинство решений для резервного копирования данных под Windows в том или ином виде используют возможности службы теневых копий (VSS — Volume Shadow Copy Service) для создания копий данных приложений или сервисов. В некоторых случаях, служба VSS или один из ее модулей записей начинают работать некорректно, в результате чего не удается выполнить нормальную процедуру резервное копирования данных. Я сталкивался с такой ошибкой на Exchange, MSSQL и Hyper-V серверах. Для быстрого восстановления службы VSS и ее компонентов я использую следующую инструкцию.
Чтобы определить сбойный модуль VSS, выведем список зарегистрированных в системе модулей записи VSS (Writers) с помощью команды vssadmin.
vssadmin list writers
В списке компонентов ищем те, которые находятся в состоянии Failed (для нормально работающих компонентов статус должен быть State: [1] Stable)
Writer name: ‘Microsoft Exchange Writer’
Writer Id: <76fe1ac4-6ded-4f4b-8f17-fd23f8ddcfb7>
Writer Instance Id: <31b56ab0-9588-412f-ae7b-cdc375347158>
State: [7] Failed
Last error: Retryable error
Как вы видите, в нашем случае модуль записи Microsoft Exchange Writer находится в сбойном состоянии (State: [8] Failed), поэтому резервное копирование Exchange выполнить не удастся. Как правило, чтобы исправить состояние такого компонента, достаточно перезагрузить сервер (что не всегда возможно по производственным причинам).
Чтобы починить модуль записи, нужно попробовать перезапустить связанную с ним службу (в таблице ниже содержится список соответствия типовых VSS Writer и связанных с ними служб Windows). Помимо остановки службы, иногда приходится руками завершать процесс зависшей службы.
VSS Writer | Имя службы | Полное имя службы |
ASR Writer | VSS | Volume Shadow Copy |
BITS Writer | BITS | Background Intelligent Transfer Service |
Certificate Authority | CertSvc | Active Directory Certificate Services |
COM+ REGDB Writer | VSS | Volume Shadow Copy |
DFS Replication service writer | DFSR | DFS Replication |
DHCP Jet Writer | DHCPServer | DHCP Server |
FRS Writer | NtFrs | File Replication |
FSRM writer | srmsvc | File Server Resource Manager |
IIS Config Writer | AppHostSvc | Application Host Helper Service |
IIS Metabase Writer | IISADMIN | IIS Admin Service |
Microsoft Exchange Replica Writer | MSExchangeRepl | Microsoft Exchange Replication Service |
Microsoft Exchange Writer | MSExchangeIS | Microsoft Exchange Information Store |
Microsoft Hyper-V VSS Writer | vmms | Hyper-V Virtual Machine Management |
MSMQ Writer (MSMQ) | MSMQ | Message Queuing |
MSSearch Service Writer | WSearch | Windows Search |
NPS VSS Writer | EventSystem | COM+ Event System |
NTDS | NTDS | Active Directory Domain Services |
OSearch VSS Writer | OSearch | Office SharePoint Server Search |
OSearch14 VSS Writer | OSearch14 | SharePoint Server Search 14 |
Registry Writer | VSS | Volume Shadow Copy |
Shadow Copy Optimization Writer | VSS | Volume Shadow Copy |
SMS Writer | SMS_SITE_VSS_WRITER | SMS_SITE_VSS_WRITER |
SPSearch VSS Writer | SPSearch | Windows SharePoint Services Search |
SPSearch4 VSS Writer | SPSearch4 | SharePoint Foundation Search V4 |
SqlServerWriter | SQLWriter | SQL Server VSS Writer |
System Writer | CryptSvc | Cryptographic Services |
TermServLicensing | TermServLicensing | Remote Desktop Licensing |
WDS VSS Writer | WDSServer | Windows Deployment Services Server |
WIDWriter | WIDWriter | Windows Internal Database VSS Writer |
WINS Jet Writer | WINS | Windows Internet Name Service (WINS) |
WMI Writer | Winmgmt | Windows Management Instrumentation |
Еще раз выполните команду
vssadmin list writers
Проверьте статус проблемного модуля записи. Если он не изменился на Stable и проблема не исправлена, можно попробовать перерегистрировать компоненты и библиотеки службы VSS.
Перейдите в каталог:
Остановите службы Volume Shadow Copy и Microsoft Software Shadow Copy Provider
Net Stop VSS
Net Stop SWPRV
Перерегистрируйте компоненты VSS:
regsvr32 /s ole32.dll
regsvr32 /s oleaut32.dll
regsvr32 /s vss_ps.dll
vssvc /register
regsvr32 /s /i swprv.dll
regsvr32 /s /i eventcls.dll
regsvr32 /s es.dll
regsvr32 /s stdprov.dll
regsvr32 /s vssui.dll
regsvr32 /s msxml.dll
regsvr32 /s msxml3.dll
regsvr32 /s msxml4.dll
vssvc /register
Теперь осталось запустить остановленные службы:
Net Start SWPRV
Net Start VSS
Проверьте, пропала ли ошибка у проблемного модуля записи VSS.
Данный метод перезапуска и перерегистрации компонентов VSS эффективен, как на Windows Server 2008 / 2012/ R2, так и на Windows Server 2016.
Windows Server backup may fail because of the SQL Server VSS writer
This article provides a solution to an issue where Microsoft Windows Server backup fails with an error: A Volume Shadow Copy Service Operation failed.
Original product version: В Windows Server 2012 R2, Windows Server 2016
Original KB number: В 2615182
Symptoms
A backup of the server may fail with the following error message:
A Volume Shadow Copy Service Operation failed. Detailed Error: The volume shadow copy operation failed with error 0x800423F4. View the event log for more information.
The following error message will be recorded in the application event log:
Log Name: Application
Source: Microsoft-Windows-Backup
Event ID: 521
Level: Error
Description:
Backup started at ‘ ‘ failed as Volume Shadow copy operation failed for backup volumes with following error code ‘2155348129’. Please rerun backup once issue is resolved.
If you examine the application event log more, you will notice numerous errors from sources SQLWriter and SQLVDI.
The errors will be similar to the following:
Log Name: Application Source: SQLWRITER
Event ID: 24583
Level: Error
Description:
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: BACKUP DATABASE is terminating abnormally.
SQLSTATE: 42000, Native Error: 3271
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: A nonrecoverable I/O error occurred on file »22:» 995(The I/O operation has been aborted because of either a thread exit or an application request.).
Log Name: Application
Source: SQLVDI
Event ID: 1
Level: Error
Keywords: Classic
User: N/A
Computer: CONTOSOSERVER.contoso.local
Description:
SQLVDI: Loc=TriggerAbort. Desc=invoked. ErrorCode=(0). Process=3720. Thread=9404. Server. Instance=SBSMonitoring. VD=Global10_SQLVDIMemoryName_0.
Cause
When Windows Server backup attempts to back up a disk volume, a Volume Shadow Copy Snapshot is created for the volume. When the snapshot is created, any Volume Shadow Copy Service (VSS) writer associated with the volume is called. If any of the VSS writers encounter an error, the entire backup job will fail. In this example, the SQL VSS writer is encountering an error and causing the backup job to fail.
Resolution
The error is typically caused by a problem with one of the SQL Server instances. In order to troubleshoot the problem, you must first figure out which SQL Server instance has the problem. Usually, the problematic SQL Server instance will be named in the first recorded SQLVDI error.
Log Name: Application
Source: SQLVDI
Event ID: 1
Level: Error
Description:
SQLVDI: Loc=SignalAbort. Desc=Client initiates abort. ErrorCode=(0). Process=4772. Thread=10300. Client. Instance= SBSMONITORING . VD=Global<3ab8f080-950c-4ef9-b637-0f37b2428f17>1_SQLVDIMemoryName_0.
In this example, the SQL Server instance named SBSMONITORING is failing the snapshot.
There may also be an error message from source SQLWRITER that occurs at about the same time as the first SQLVDI error. The SQLWRITER error message may identify the database name that is having a problem with the snapshot.
Log Name: Application
Source: SQLWRITER
Event ID: 24583
Description:
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: BACKUP DATABASE is terminating abnormally.
SQLSTATE: 42000, Native Error: 945
Error state: 2, Severity: 14
Source: Microsoft SQL Server Native Client 10.0
Error message: Database ‘SBSMonitoring’ cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
In this example, the database named SBSMonitoring is having a problem.
Once you have identified the SQL Server instance that is having a problem, the first step would be to test the backup with that SQL Server instance stopped. In our example of the SBSMonitoring instance, you would stop the SQL Server (SBSMonitoring) service on the server.
You would then run the backup job with the affected SQL Server instance stopped. If the backup completes, then you know the failure is caused by the SQL Server instance that is not running. You would then examine the SQL Server error log files and the event logs to see if we can determine what is wrong with that particular instance of SQL Server.
If you can’t determine the problematic SQL Server instance from the event logs, you can always stop all the SQL Server instances on the server and try to run backup with SQL stopped. If all the SQL Server instances are stopped, the SQL VSS writer will not be used.
On a default installation of Small Business Server 2008, you would stop the following services:
- SQL Server (SBSMonitoring)
- Windows Internal Database
On a default installation of Small Business Server 2011 Standard, you would stop the following services:
- SQL Server (SharePoint)
- SQL Server (SBSMonitoring)
- Windows Internal Database
—>
cлужба «Модуль записи SQL» SQL Writer Service
Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)
Служба «Модуль записи SQL» предоставляет дополнительные возможности резервного копирования и восстановления SQL Server SQL Server с помощью механизма службы теневого копирования тома. The SQL Writer Service provides added functionality for backup and restore of SQL Server SQL Server through the Volume Shadow Copy Service framework.
Служба «Модуль записи SQL» устанавливается автоматически. The SQL Writer Service is installed automatically. Она должна запускаться при запросе службы теневого копирования томов (VSS) резервного копирования или восстановления. It must be running when the Volume Shadow Copy Service (VSS) application requests a backup or restore. Служба настраивается с помощью оснастки «Службы» Microsoft Microsoft Windows. To configure the service, use the Microsoft Microsoft Windows Services applet. Служба модуля записи SQL устанавливается на всех операционных системах. The SQL Writer Service installs on all operating systems.
Назначение Purpose
Во время работы компонент Компонент Database Engine Database Engine блокирует файлы данных и обладает монопольными правами доступа к ним. When running, Компонент Database Engine Database Engine locks and has exclusive access to the data files. Если служба «Модуль записи SQL» не запущена, то у программ резервного копирования, работающих в Windows, нет доступа к файлам данных, а резервное копирование должно выполняться с помощью функции резервного копирования SQL Server SQL Server . When the SQL Writer Service is not running, backup programs running in Windows do not have access to the data files, and backups must be performed using SQL Server SQL Server backup.
Служба «Модуль записи SQL» позволяет во время работы SQL Server SQL Server разрешить программам резервного копирования Windows копирование файлов данных SQL Server SQL Server . Use the SQL Writer Service to permit Windows backup programs to copy SQL Server SQL Server data files while SQL Server SQL Server is running.
служба «Теневое копирование томов» Volume Shadow Copy Service
Служба теневого копирования томов — это набор API-интерфейсов COM, которые обеспечивают платформу для реализации резервного копирования томов во время записи приложениями данных в эти тома. The VSS is a set of COM APIs that implements a framework to allow volume backups to be performed while applications on a system continue to write to the volumes. В службе теневого копирования томов предусмотрен согласованный интерфейс, обеспечивающий координацию пользовательских приложений, обновляющих данные на диске (модулей записи) и программ, выполняющих резервное копирование приложений (генераторов запросов). The VSS provides a consistent interface that allows coordination between user applications that update data on disk (writers) and those that back up applications (requestors).
Служба теневого копирования томов захватывает и копирует стабильные образы для резервного копирования в работающих системах, особенно на серверах. При этом не происходит чрезмерного понижения производительности и стабильности работы служб. The VSS captures and copies stable images for backup on running systems, particularly servers, without unduly degrading the performance and stability of the services they provide. Дополнительные сведения о службе теневого копирования томов см. в документации по Windows. For more information on the VSS, see your Windows documentation.
Если VSS используется, чтобы создать резервную копию виртуальной машины, на которой размещается основная группа доступности и базы данных-получатели, начиная с SQL Server 2016 (13.x); SQL Server 2016 (13.x) SP2 CU2 и SQL Server 2017 (14.x); SQL Server 2017 (14.x) CU9, резервные копии этих баз данных и виртуальной машины не будут создаваться. When using VSS to backup a virtual machine that is hosting a Basic Availability Group, if the virtual machine is currently hosting databases that are in a secondary state, starting with SQL Server 2016 (13.x); SQL Server 2016 (13.x) SP2 CU2 and SQL Server 2017 (14.x); SQL Server 2017 (14.x) CU9 those databases will not be backed up with the virtual machine. Это обусловлено тем, что базовые группы доступности не поддерживают резервное копирование баз данных во вторичной реплике. This is because Basic Availability Groups do not support backing up databases on the secondary replica. В более ранних версиях SQL Server SQL Server резервное копирование будет завершаться ошибкой. Prior to these versions of SQL Server SQL Server , the backup would fail with an error.
Интерфейс виртуальных устройств резервного копирования (VDI) Virtual Backup Device Interface (VDI)
SQL Server SQL Server включает API с названием «Интерфейс виртуальных устройств резервного копирования» (VDI), который позволяет независимым поставщикам программного обеспечения встраивать SQL Server SQL Server в их продукты для поддержки операций резервного копирования и восстановления. provides an API called Virtual Backup Device Interface (VDI) that enables independent software vendors to integrate SQL Server SQL Server into their products for providing support for backup and restore operations. Эти функции API обеспечивают максимальную надежность и производительность, а также поддерживают все функции резервного копирования и восстановления SQL Server SQL Server , включая полный набор возможностей оперативного и моментального резервного копирования. These APIs are engineered to provide maximum reliability and performance, and support the full range of SQL Server SQL Server backup and restore functionality, including the full range of hot and snapshot backup capabilities. Если приложение стороннего поставщика запрашивает резервную копию моментального снимка (VSS), модуль записи SQL вызывает функции API VDI для выполнения фактических операций резервного копирования. If a third-party vendor application requests a snapshot (VSS) backup, the SQL Writer Service calls the VDI API functions in order to perform the actual backups. Обратите внимание, что API VDI не зависит от VSS и часто используется в программных решениях, которые не используют интерфейсы API VSS. Note that the VDI API is independent of VSS and is frequently used in software solutions that do not employ VSS APIs.
Разрешения Permissions
Служба «Модуль записи SQL» должна запускаться под учетной записью Local System . The SQL Writer service must run under the Local System account. Модуль записи SQL использует имя входа NT Service\SQLWriter при подключении к SQL Server SQL Server . The SQL Writer service uses the NT Service\SQLWriter login to connect to SQL Server SQL Server . С помощью имени входа NT Service\SQLWriter процесс записи SQL может запускаться на более низком уровне прав доступа в учетной записи, помеченной как без имени входа, что снижает потенциальную уязвимость. Using the NT Service\SQLWriter login allows the SQL Writer process to run at a lower privilege level in an account designated as no login, which limits vulnerability. Если модуль записи SQL отключен, то каждая служебная программа, которая полагается на моментальные снимки VSS, например System Center Data Protection Manager, а также некоторые другие продукты сторонних поставщиков, перестанет работать и будет сбоить с риском принятия нецелостных резервных копий баз данных. If the SQL Writer service is disabled, then any utility which in relies on VSS snapshots, such as System Center Data Protection Manager, as well as some other 3rd-party products, would be broken, or worse, at risk of taking backups of databases which were not consistent. Если ни службы SQL Server SQL Server , ни система, где они выполняются, ни система их размещения (в случае виртуальной машины) не нуждаются в чем-либо помимо резервного копирования Transact-SQL Transact-SQL , то модуль записи SQL можно спокойно отключить и удалить имя входа. If neither SQL Server SQL Server , the system it runs on, nor the host system (in the event of a virtual machine), need to use anything besides Transact-SQL Transact-SQL backup, then the SQL Writer service can be safely disabled and the login removed. Обратите внимание, что модуль записи SQL может вызываться системой или резервной копией тома независимо от того, использует ли копия моментальные снимки напрямую или нет. Note that the SQL Writer service may be invoked by a system or volume level backup, whether the backup is directly snapshot-based or not. Некоторые продукты для резервного копирования системы используют службу VSS во избежание блокировки по открытым или заблокированным файлам. Some system backup products use VSS to avoid being blocked by open or locked files. Модулю записи SQL требуются повышенные разрешения в SQL Server SQL Server , поскольку во время его работы на короткий момент времени замораживаются все операции ввода и вывода для экземпляра SQL Server SQL Server . The SQL Writer service needs elevated permissions in SQL Server SQL Server because in the course of its activities it briefly freezes all I/O for the instance of SQL Server SQL Server .
Компоненты Features
Служба «Модуль записи SQL» поддерживает: SQL Writer supports:
полное резервное копирование и восстановление баз данных, включая полнотекстовые каталоги; Full database backup and restore including full-text catalogs
разностное резервное копирование и восстановление; Differential backup and restore
восстановление с перемещением; Restore with move
переименование базы данных; Database rename
резервная копия, предназначенная только для копирования; Copy-only backup