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


Сведения о создании теневого копирования

Как правило, способ создания теневой копии зависит от типа создаваемой теневой копии, ее контекста и роли, которая предоставляется авторам в операции теневого копирования. (Дополнительные сведения см. в разделе Конфигурации контекста теневого копирования .)

Контекст теневого копирования задается путем вызова метода IVssBackupComponents::SetContext . Перед вызовом метода IVssBackupComponents::D oSnapshotSet для создания теневой копии инициаторы запроса должны вызвать методы IVssBackupComponents в порядке, указанном в следующих разделах.

Предварительные требования для всех теневых копий

Независимо от уровня участия модуля записи для создания любой теневой копии всегда требуется инициализировать инициатор запроса с помощью вызовов IVssBackupComponents::InitializeForBackup и IVssBackupComponents::StartSnapshotSet.

Если этот вызов не выполнен, метод IVssBackupComponents::D oSnapshotSet вернет ошибку.

Теневые копии с участием модуля записи

Если контекст теневого копирования указывает участие модуля записи (то есть IVssBackupComponents::SetContext вызывается с VSS_CTX_BACKUP или VSS_CTX_APP_ROLLBACK):

  • Инициаторы запроса всегда должны вызывать IVssBackupComponents::CollectWriterMetadata , если контекст теневого копирования поддерживает участие в записи. Если контекст теневого копирования поддерживает участие модуля записи и IVssBackupComponents::CollectWriterMetadata не вызывается до IVssBackupComponents::D oSnapshotSet, возвращается ошибка.
  • Если инициатор запроса хочет выбрать определенные компоненты записи, он должен вызвать IVssBackupComponents::AddComponents перед вызовомStartSnapshotSet для создания набора теневых копий.
  • Для создания набора теневых копий необходимо вызвать StartSnapshotSet.
  • Инициаторы запроса могут добавить один или несколько томов в набор теневого копирования, вызвав Метод AddToSnapshotSet. Некоторые компоненты модуля записи могут не указывать затронутые тома. В этом случае допустимо, чтобы snapshot был пустым (т. е. не содержал томов).
  • Чтобы гарантировать согласованность метаданных модуля записи, инициатор запроса должен всегда вызывать IVssBackupComponents::P repareForBackup , даже если компоненты не выбраны. Это приводит к тому, что VSS создает событие PrepareForBackup , в котором VSS вызывает метод CVssWriter::OnPrepareBackup для каждого участвующего модуля записи.
  • VsS создаст события PrepareForSnapshot и Freeze перед созданием теневой копии в ответ на IVssBackupComponents::D oSnapshotSet. Записи будут обрабатывать события с помощью CVssWriter::OnPrepareSnapshot и CVssWriter::OnFreeze.
  • VSS создаст события Thaw и PostSnapshot после создания теневой копии в ответ на IVssBackupComponents::D oSnapshotSet. Авторы будут обрабатывать события с помощью CVssWriter::OnThaw и CVssWriter::OnPostSnapshot.

Теневые копии без участия автора

Создание теневых копий без участия модуля записи не рекомендуется для стандартных приложений резервного копирования (см. раздел Резервное копирование без участия модуля записи).

Существуют такие способы использования, как быстрое резервное копирование диска, чтобы обеспечить защиту от случайного повреждения файла, которое может быть выполнено без явного участия в записи. Такая теневая копия будет иметь контекст либо VSS_CTX_FILE_SHARE_BACKUP , либо VSS_CTX_NAS_ROLLBACK.

Для этого типа теневой копии обратите внимание на следующее: