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


Жизненный цикл документа компонентов резервного копирования

Инициаторы запроса несут основную ответственность за жизненный цикл документа компонентов резервного копирования.

Этот элемент управления осуществляется экземпляром объекта интерфейса IVssBackupComponents , возвращенного CreateVssBackupComponents.

Инициатор запроса должен инициализировать документ компонентов резервной копии перед резервной копией или восстановлением, вызвав IVssBackupComponents::InitializeForBackup или IVssBackupComponents::InitializeForRestore. Инициатор запроса может инициализировать документ как пустой или загрузить ранее сохраненную копию документа.

Для операций резервного копирования документ компонентов резервного копирования обычно инициализируется как пустой. Его данные будут заполнены в сотрудничестве с авторами системы в ходе обработки резервной копии.

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

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

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

Некоторые компоненты будут явно включены в операцию резервного копирования; сведения о компоненте будут добавлены в документ По компонентам резервного копирования. Другие будут неявно включены в резервную копию; сведения о добавленных компонентах не будут добавлены в документ по компонентам резервного копирования.

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

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

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

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

Сведения о хранимых компонентах доступны как инициаторам запроса, так и авторам через экземпляры интерфейса IVssComponent .

Именно через интерфейсы IVssComponent модули записи могут запрашивать и (до конца событий PostSnapshot и PostRestore ) изменять сведения в документе компонентов резервного копирования.

При вызове обработчика событий CVssWriter::OnPrepareBackup, CVssWriter::OnPreRestore, CVssWriter::OnPostSnapshot, CVssWriter::OnBackupComplete или CVssWriter::OnPostRestore модуль записи получает экземпляр интерфейса IVssWriterComponents .

Обратите внимание, что при создании события BackupComplete документ компонентов резервного копирования становится доступным только для чтения, поэтому CVssWriter::OnBackupComplete не может использовать интерфейс IVssComponent для его изменения.

Из интерфейса IVSSWriterComponents модуль записи может получить экземпляры интерфейса IVssComponent , что позволит ему получить доступ ко всем его компонентам, явно добавленным в документ компонентов резервного копирования, и изменить их состояние. Дополнительные сведения см. в разделах Общие сведения об обработке резервной копии в VSS и Обзор обработки восстановления в VSS.

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

Кроме того, при правильном освобождении документа IVssBackupComponents создается событие BackupShutdown и автоматическиосвобождаются теневые копии .