Содержимое документа компонентов резервного копирования
Документ компонентов резервного копирования поддерживается экземплярами интерфейса IVssBackupComponents . Этот интерфейс также содержит множество методов для управления операциями резервного копирования, управления теневыми копиями и запроса состояния системы. Однако не все сведения документа доступны напрямую через этот интерфейс.
Документ компонентов резервного копирования состоит из нескольких наборов данных:
- Сведения о том, какие компоненты были явно включены в операцию резервного копирования или восстановления
- Представление хранимого компонента и сведений модуля записи
- Сведения о состоянии операции резервного копирования и восстановления
Хотя сведения о компоненте доступны как инициатору запроса, так и средству записи, доступ к сведениям о состоянии имеет только модуль записи.
Сведения о включении компонентов
Документ По компонентам резервного копирования содержит список компонентов, явно включенных в резервное копирование и восстановление инициатором запроса. Список содержит следующее:
Явно включенные компоненты, доступные для выбора.
Включение этих файлов в операции резервного копирования обозначается IVssBackupComponents::AddComponent , а в операциях восстановления — IVssBackupComponents::SetSelectedForRestore.
Не может быть выбрано для подкомпонентов резервного копирования без выбора для предка компонента резервного копирования.
Все эти компоненты должны быть включены, если какие-либо компоненты модуля записи должны быть включены в операцию. Включение этих файлов в операции резервного копирования обозначается IVssBackupComponents::AddComponent , а в операциях восстановления — IVssBackupComponents::SetSelectedForRestore.
Компоненты, неявно добавленные в резервную копию (подкомпоненты), которые можно выбрать для восстановления и явно добавляются к восстановлению.
Эти компоненты могут быть либо доступными для выбора, либо необбираемыми, но у них есть доступный для выбора предок, который использовался для неявного выбора их для резервного копирования. Они добавляются в документ компонентов резервного копирования iVssBackupComponents::AddRestoreSubcomponent.
Удостоверения компонентов, неявно включенных в восстановление, не хранятся в документе Компоненты резервного копирования.
VSS имеет доступ к сведениям о включении компонентов: записи без компонентов, явно включенных в восстановление или резервное копирование, не получают события VSS после создания событий PrepareForBackup или PreRestore .
Записи не могут напрямую запрашивать эти сведения. Это не является существенным ограничением, поскольку по умолчанию отдельные записи VSS не должны требовать подробных сведений о состоянии других модулей записи в системе, и, как отмечалось выше, те, у кого нет включенных компонентов, не должны участвовать в операции VSS.
Инициатор запроса может определить, какие компоненты были явно включены в операцию.
Метод IVssBackupComponents::GetWriterComponentsCount возвращает количество записей с сведениями о компонентах, хранящимися в документе компонентов резервной копии (а не число компонентов в документе).
Инициатор запроса индексирует хранимые данные модуля записи с помощью IVssBackupComponents::GetWriterComponents, который возвращает экземпляры интерфейса IVssWriterComponentsExt . Интерфейс IVssWriterComponentsExt позволяет инициатору запроса получить класс записи и экземпляр записи участвующих записей, а также получить доступ к сведениям о компонентах, хранящихся в документе компонентов резервного копирования.
Сведения о включенных компонентах
В документе Backup Components Document представлены данные компонента (не включаются сведения о пути и спецификации файла), доступ к которому осуществляется через экземпляры интерфейса IVssComponent .
Инициаторы запроса и записи получают доступ к экземплярам интерфейса IVssComponent различными способами.
Инициатор запроса проверяет данные компонентов в записи по записи с помощью экземпляров интерфейса IVssWriterComponentsExt , возвращаемых IVssBackupComponents::GetWriterComponents.
Помимо сведений об идентификации модуля записи интерфейс IVssWriterComponentsExt предоставляет массив экземпляров интерфейса IVssComponent — по одному для каждого из выбранных компонентов модуля записи.
Как указано в разделе Жизненный цикл документа компонентов резервного копирования, записи могут получить доступ к той же информации через интерфейс IVssWriterComponents при обработке событий PrepareForBackup, PrepareForSnapshot, PostSnapshot, BackupComplete, PreRestore или PostRestore.
IVssComponent позволяет как записи, так и инициаторам запроса получать следующие сведения:
- Имя, тип и логический путь компонента (GetComponentName, GetComponentType, GetLogicalPath)
- Способ восстановления компонента в соответствии с целевым объектом восстановления (IVssComponent::GetRestoreTarget)
- Если при восстановлении файла использовалось альтернативное расположение (GetAlternateLocationMapping, GetAlternateLocationMappingCount)
- Новые сведения о целевом объекте( GetNewTarget, GetNewTargetCount)
- Сообщения об ошибках перед и после восстановления (GetPreRestoreFailureMsg, GetPostRestoreFailureMsg)
- Если для восстановления выбран компонент резервного копирования , определяющий набор компонентов (IsSelectedForRestore)
- Указывает, выполнено ли резервное копирование или восстановление (GetBackupSucceededed, GetFileRestoreStatus)
- Все параметры резервного копирования или восстановления для модуля записи, которые могли быть заданы IVssBackupComponents::SetBackupOptions или IVssBackupComponents::SetRestoreOptions (GetBackupOptions, GetRestoreOptions)
- Резервное копирование или восстановление метаданных для модуля записи (GetBackupMetadata, GetRestoreMetadata)
- Сведения о метке времени (GetBackupStamp, GetPreviousBackupStamp)
- Сведения о подкомпонентах резервного копирования, явно включенных в восстановление (GetRestoreSubcomponent, GetRestoreSubcomponentCount)
В отличие от инициаторов запроса, записи могут изменять определенные сведения в документе компонентов резервного копирования с помощью интерфейса IVssComponent :
- Способ восстановления компонента в соответствии с целевым объектом восстановления (IVssComponent::SetRestoreTarget)
- Метаданные резервного копирования и восстановления для модуля записи (IVssComponent::SetBackupMetadata, IVssComponent::SetRestoreMetadata)
- Сведения о метке времени (SetBackupStamp)
- Сообщения об ошибках до и после восстановления (SetPreRestoreFailureMsg, SetPostRestoreFailureMsg)
Сведения о состоянии инициатора запроса
Инициаторы запроса вставляют сведения о состоянии операции резервного копирования или восстановления в документ компонентов резервного копирования с помощью интерфейса IVssBackupComponents . Приложения записи могут запрашивать эти сведения с помощью класса CVssWriter .
Сведения о состоянии, хранящиеся в документе По компонентам резервного копирования, включают следующее:
Общие сведения о резервном копировании
- Общий тип резервной копии (добавочная, разностная или полная)
Задайте инициаторами запроса с помощью IVssBackupComponents::SetBackupState
Извлекается средствами записи с помощью CVssWriter::GetBackupType
-
Задайте инициаторами запроса с помощью IVssBackupComponents::SetBackupState
-
Извлекается средствами записи с помощью CVssWriter::AreComponentsSelected
-
Задайте инициаторами запроса с помощью IVssBackupComponents::SetBackupState
-
Извлекается средствами записи с помощью CVssWriter::IsBootableStateBackedUp
-
Задайте инициаторами запроса с помощью IVssBackupComponents::SetBackupState
-
Извлекается средствами записи с помощью CVssWriter::IsPartialFileSupportEnabled
Общие сведения о восстановлении
- Общий тип восстановления (независимо от того, выполняется ли восстановление путем копирования или импорта).
Задайте инициаторами запроса с помощью IVssBackupComponents::SetRestoreState
Извлекается средствами записи с помощью CVssWriter::GetRestoreType
Сведения о вспомогательных файлах
- Расположение файлов диапазонов, используемых определенным компонентом в частичных операциях с файлами
Задайте инициаторами запроса с помощью IVssBackupComponents::SetRangesFilePath
Извлекается средствами записи (или инициаторами запроса) с помощью IVssComponent::GetPartialFile
Состояние сведений
- Укажите, успешно ли выполнено резервное копирование одного из компонентов модуля записи.
Установка инициаторами запроса с помощью IVssBackupComponents::SetBackupSucceeded
Извлекается авторами и инициаторами запроса с помощью IVssComponent::GetBackupSucceeded
-
Установка инициаторами запроса с помощью IVssBackupComponents::SetFileRestoreStatus
-
Извлекается средствами записи и инициатора запроса с помощью IVssComponent::GetFileRestoreStatus
Сведения о Writer-Settable
- Дополнительная спецификация резервного копирования для одного из компонентов модуля записи
Настройка средствами записи с помощью IVssComponent::SetBackupMetadata
Извлекается средствами записи и инициаторами запроса с помощью IVssComponent::GetBackupMetadata
-
Настройка средствами записи с помощью IVssComponent::SetRestoreMetadata
-
Извлекается авторами и инициаторами запроса с помощью IVssComponent::GetRestoreMetadata
-
Задается средствами записи с помощью IVssComponent::SetBackupStamp
-
Извлекается авторами записи и инициаторами запроса с помощью IVssComponent::GetBackupStamp
-
Хранятся и задаются инициаторами запроса для определенного компонента с помощью IVssBackupComponents::SetPreviousBackupStamp
-
Извлекается авторами и инициаторами запроса с помощью IVssComponent::GetPreviousBackupStamp
-
Устанавливается модулями записи с помощью IVssComponent::SetPreRestoreFailureMsg или IVssComponent::SetPostRestoreFailureMsg
-
Извлекается авторами и инициаторами запроса с помощью IVssComponent::GetPreRestoreFailureMsg или IVssComponent::GetPostRestoreFailureMsg