Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Восстановление добавочной или разностной резервной копии в VSS не сильно отличается от любой другой операции восстановления VSS.
Писатель может изменять цели восстановления или запрашивать целенаправленные цели, а запрашивающий должен управлять альтернативными отображениями местоположений и новыми целями, как и при любом другом восстановлении. Однако существуют две важные проблемы, которые следует учитывать при обработке восстановления добавочной или разностной резервной копии: дополнительные операции восстановления и метки резервных копий.
Дополнительные операции восстановления
Первой проблемой являются дополнительные восстановления. Оператору резервного копирования, возможно, потребуется выполнить несколько операций восстановления, используя начальные полные и последующие инкрементные или дифференциальные носители резервного копирования в качестве источника.
Некоторые писатели, обычно как часть обработки события PostRestore с помощью CVssWriter::OnPostRestore, используют восстановленные файлы для обновления данных, находящихся на диске. Для некоторых из этих средств записи это неэффективно (или опасно) повторно обновлять данные на диске из восстановленных файлов.
Поэтому важно, чтобы приложения резервного копирования указывали, когда компонент или набор компонентов может потребовать последующих восстановления путем вызова IVssBackupComponents::SetAdditionalRestores.
Модуль записи вызовет IVssComponent::GetAdditionalRestores, чтобы определить, планирует ли оператор резервного копирования больше восстановления компонента или набора компонентов.
Если запрашивающий объект не вызывал IVssBackupComponents::SetAdditionalRestores, то IVssComponent::GetAdditionalRestores возвращает значение false, а средство записи может выполнять любую обработку после восстановления, которую необходимо выполнить.
Если был вызван IVssBackupComponents::SetAdditionalRestores, то IVssComponent::GetAdditionalRestores возвращает true, а средство записи должно решить, как обрабатывать операции после восстановления, например, средство записи может не обновлять данные на диске.
Метки резервного копирования
В рамках предыдущей полной операции резервного копирования писатель, возможно, сохранил метку резервного копирования в документе компонентов резервного копирования запросчика.
Метка резервного копирования хранится в виде строки, и их формат и информация неразборчивы для запрашивающего. Таким образом, запрашиватель не может напрямую использовать сведения о метки резервной копии.
Вместо этого её задача заключается в том, чтобы сделать эти сведения доступными для автора, вызвав метод IVssBackupComponents::SetPreviousBackupStamp до создания события PrepareForBackup для инкрементальной резервной копии.
Запрашивающий выполняет это на основе компонента по компоненту. Запрашивающий проверяет информацию о метке резервного копирования для хранимого компонента или набора компонентов с помощью IVssComponent::GetBackupStamp.
Если информация о метке резервного копирования соответствует типу восстановления, которое выполняет запрос, она делается доступной в качестве метки времени последней резервной копии компонента с помощью метода IVssBackupComponents::SetPreviousBackupStamp.
Автор восстанавливает сведения о метке резервного копирования с помощью IVssComponent::GetPreviousBackupStamp. Автор этого класса создал начальную метку резервного копирования, поэтому он может декодировать эту метку и использовать информацию. На основе этого при обработке события PreRestore записывающее устройство может предпринять такие действия, как изменение целевых объектов восстановления или запрос на целенаправленное восстановление.