Поделиться через


Остановка служб для восстановления инициаторами запросов

Может потребоваться остановить службу до и перезапустить после операции восстановления.

Как правило, остановка и запуск службы для поддержки восстановления выполняется модулем записи при обработке события PreRestoreпомощью CVssWriter::OnPreRestore) и события PostRestoreпомощью CVssWriter::OnPostRestore).

Однако в некоторых случаях может потребоваться явно остановить выполняющуюся службу инициатором запроса. Записи указывают, так ли это, задав VSS_RME_STOP_RESTORE_START или VSS_RME_RESTORE_STOP_START значение перечисления VSS_RESTOREMETHOD_ENUM в качестве аргумента метода restore при вызове метода IVssCreateWriterMetadata::SetRestoreMethod и указав имя службы, которую необходимо остановить.

Инициатор запроса получает сведения о методе восстановления и имени службы, которую необходимо остановить при работе с метаданными модуля записи, с помощью метода IVssExamineWriterMetadata::GetRestoreMethod .

Важно, чтобы модуль записи при указании имени службы, которую необходимо остановить, использовал правильное общедоступное имя этой службы. Неоднозначное или неточное имя может привести к остановке запрашивающей службы или невозможности определить, какую службу следует остановить.

После завершения операции восстановления запрашивающие стороны должны перезапустить службу.

Вы должны быть осторожны при разработке и реализации модулей записи, которые поддерживают службы, которые запрашивающие должны останавливать и перезапускать. В частности, такие записи не должны быть частью службы, то есть сам модуль записи не нужно останавливать, а затем перезапускать в ходе операции восстановления.

Модуль записи, процесс которого остановлен, при перезапуске будет иметь другой экземпляр записи. Новый экземпляр модуля записи не будет получать события VSS, предназначенные для исходного экземпляра модуля записи. В частности, если процесс экземпляра записи останавливается после обработки события PreRestore, новый экземпляр не получит событие PostRestore. Кроме того, VSS создаст ошибку, указывающую на потерю модуля записи, участвующего в операции восстановления, и IVssBackupComponents::P ostRestore может вернуть ошибку.