Обзор очистки и завершения восстановления

После восстановления записи проверка состояние операции, чтобы они могли использовать восстановленные данные и работать с ошибками. Инициатор запроса должен дождаться завершения этого действия. Дополнительные сведения см. в разделе Общие сведения об обработке восстановления в VSS.

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

Действие инициатора запроса Событие Действие записи
Инициатор запроса указывает конец восстановления (см. раздел IVssBackupComponents::P ostRestore). PostRestore Модуль записи выполняет очистку после восстановления и обрабатывает сбои восстановления и файлы, которые были восстановлены в нестандартных расположениях (см . раздел CVssWriter::OnPostRestore, IVssComponent).
Инициатор запроса ожидает записи для обработки события PostRestore с помощью IVssAsync. Он также должен проверять состояние записи (см. раздел IVssBackupComponents::CollectWriterStatus, IVssBackupComponents::GetWriterStatus). Нет Нет
Инициатор запроса освобождает интерфейс IVssBackupComponents . Нет Нет

 

Действия инициатора запроса во время очистки и завершения

На этом этапе инициатор запроса указывает конец своих действий по восстановлению файлов, создавая событие PostRestore путем вызова IVssBackupComponents::P ostRestore.

Действия инициатора запроса ограничиваются ожиданием записи, которые могут потребоваться для выполнения окончательной очистки и обработки ошибок восстановления, а также освобождения интерфейса IVssBackupComponents после того, как все записи вернутся из обработки события PostRestore .

Действия записи во время очистки и завершения

Событие PostRestore обрабатывается виртуальным методом CVssWriter::OnPostRestore. Реализация по умолчанию просто возвращает значение true , не предпринимая никаких действий. Если модуль записи должен осуществлять больший контроль над ситуацией после восстановления, он может переопределить этот метод.

Помимо обычной очистки (например, удаления временных файлов), которую модуль записи может выполнять в CVssWriter::OnPostRestore, она может обрабатывать операции восстановления успешно или неудачно.

Способ обработки ошибок восстановления, файлы, восстановленные в альтернативном расположении, а также необходимость восстановления в будущем полностью на усмотрение модуля записи. Типичные действия могут включать сравнение файлов в альтернативных или новых расположениях с текущими файлами, объединение данных из нескольких файлов или запуск новых сеансов, подключенных к новым файлам данных. VSS предоставляет следующие механизмы для поддержки этой функции в зависимости от компонента:

  • Успешное или неудачное восстановление любого компонента можно найти с помощью IVssComponent::GetFileRestoreStatus.
  • Использование альтернативных сопоставлений расположений при восстановлении файлов будет указано iVssComponent::GetAlternateLocationMapping.
  • Определение того, является ли восстановление добавочным и требует дальнейшего восстановления, выполняется путем вызова IVssComponent::GetAdditionalRestores. Записи, которым требуется полное восстановление данных, не должны перезапускаться, пока этот метод не вернет значение false.
  • Записи могут определить, требуется ли инициатору запроса восстановить файлы в ранее неустановленном расположении с помощью IVssComponent::GetNewTargetCount и IVssComponent::GetNewTarget

(Дополнительные сведения о восстановлении файлов в расположения, отличные от расположения по умолчанию, см. в разделе Расположения резервного копирования и восстановления, отличные от стандартных.)

Как и в случае с любым методом IVssComponent , информация, возвращаемая данным экземпляром, применяется к этим компонентам, явно включенным для резервного копирования, и к любым неявно включенным в него подкомпонентам резервного копирования, включая подкомпоненты, явно включенные для восстановления инициатором запроса с помощью IVssBackupComponents::AddRestoreSubcomponents (дополнительные сведения см. в статье Работа с возможностью выбора для восстановления и вложенных компонентов).

Так как модулям записи потребуется доступ к документу компонентов резервного копирования, важно, чтобы инициатор запроса не выпускал интерфейс IVssBackupComponents , пока не завершится обработка модуля записи.