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


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

После вызова IVssBackupComponents::CollectWriterMetadata инициатор запроса использует экземпляр интерфейса 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 .