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


Обзор этапа обнаружения резервных копий

После вызова IVssBackupComponents::GatherWriterMetadata, запрашивающий использует экземпляр интерфейса IVssAsync, возвращаемого из этого вызова, чтобы определить, когда все писатели в системе завершили построение документов метаданных писателя. Дополнительные сведения см. в разделе Обзор обработки резервного копирования вVSS.

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

Действие запрашивающего лица Событие Действие писателя
Получение документов метаданных писателя (см. IVssBackupComponents::GetWriterMetadata, IVssExamineWriterMetadata). Никакой В течение этого периода писатели могут продолжать свои обычные занятия.
Используйте список компонентов и их наборов файлов, а также исключенных файлов, чтобы получить список томов и файлов, участвующих в резервном копировании (см. IVssWMComponent, IVssWMFiledesc). Нет Нет
Выберите, какие компоненты в документе метаданных автора нужно сохранить. Вызовите IVssBackupComponents::AddComponent для каждого компонента, чтобы добавить его в документ компонентов резервного копирования. (См. раздел Работа с возможностью выбора для резервного копирования и Работа с документом о компонентах резервного копирования.) Никакой Никакой
Инициализируйте набор теневых копий, контекст и проверьте поддерживаемые тома (см. раздел IVssBackupComponents::StartSnapshotSet, IVssBackupComponents::IsVolumeSupported). Никакой Никакой
При некомпонентном резервном копировании добавьте нужные целевые тома из документа метаданных записи в набор теневых копий, вызывая IVssBackupComponents::AddToSnapshotSet для каждого тома. В противном случае, для компонентов в Документе метаданных автора, которые уже добавлены в Документ компонентов резервного копирования (вызывая AddComponent), запрашивающий объект также должен вызывать IVssBackupComponents::AddToSnapshotSet для каждого затронутого тома. Нет Никакой

 

Действия писателя на этапе обнаружения

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

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

Действия запросчика на этапе обнаружения

Запрашивающий использует объекты IVssExamineWriterMetadata, полученные с помощью IVssBackupComponents::GetWriterMetadata, для перебора метаданных всех писателей и выбора тех, чьи данные он намерен резервировать.

На этом этапе запросчику потребуется создать начальный список резервных кандидатов для каждого писателя, перебирая компоненты писателя с помощью IVssExamineWriterMetadata::GetComponent. Это предоставляет запрашивающему объекты IVssWMComponent, из которых можно получить спецификации для файлов, которые необходимо резервировать с помощью IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFileи IVssWMComponent::GetDatabaseLogFile.

Так как объектIVssWMFiledesc может использовать подстановочные знаки для хранения сведений о расположении файла, может потребоваться использовать такие функции, как FindFirstFile, FindFirstFileExи FindNextFile.

Пока теневая копия не будет завершена, авторам по-прежнему могут добавлять или удалять файлы с диска в обычном ходе работы, поэтому на данный момент не следует составлять фактический список файлов, которые необходимо сохранить.

Вместо этого на этом этапе находится исходный список файлов и томов, подлежащих резервному копированию, выполняя следующие действия:

  1. Изучение всех доступных для резервного копирования и невыбираемых компонентов в документе метаданных писателя (используя IVssExamineWriterMetadata) и упорядочивание их в наборы компонентов с использованием логического пути (см. Работа с выборностью и логическими путями)
  2. Включение явно всех необходимых компонентов (неизбираемых для резервного копирования компонентов без выбора предков резервного копирования) в документ компонентов резервного копирования с помощью IVssBackupComponents::AddComponent
  3. Выбор явного включения опционального выбора для компонентов резервного копирования, которые не определяют набор компонентов (с помощью IVssBackupComponents::AddComponent)
  4. Выбор наборов компонентов для участия в резервной копии путем явного добавления их определения для компонента резервного копирования (с помощью IVssBackupComponents::AddComponent), который неявно включаетвложенных компонентов набора компонентов.
  5. Используя набор файлов и информацию в документе метаданных писателя и функциях управления томами, запрашивающий определяет пути файлов, которые нужно будет резервировать, и тома, которые потребуют создания теневых копий.

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

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

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

Если том может участвовать в теневой копии (которую можно проверить с помощью IVssBackupComponents::IsVolumeSupported), то запрашивающий объект может добавить этот том в набор теневого копирования с помощью IVssBackupComponents::AddToSnapshotSet.

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

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

На этом этапе резервного копирования документ компонентов резервного копирования инициализируется и заполняется. В будущих операциях авторы и запросчики могут использовать интерфейс IVssComponent для коммуникации друг с другом.

Авторам предоставляется доступ к интерфейсу IVssComponent при выполнении PrepareForBackup, PostSnapshotи BackupComplete событии.