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


Роль запрашивающего средства в добавочных и разностных резервных копиях VSS

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

  1. Определите, какая степень поддержки записи доступна (с помощью IVssBackupComponents::GetWriterMetadata для получения доступа к информации в документах метаданных записи), в частности, определите, какая схема резервного копирования поддерживается (VSS_BACKUP_SCHEMA).
  2. Задайте соответствующее состояние резервного копирования.
  3. Получите спецификации уровня файлов и наборов файлов для добавочной или разностной резервной копии.
  4. Выполните резервное копирование.

Определение добавочной и разностной поддержки и конфигурации запрашивающего средства

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

определение поддержки записи

Запроситель определяет, поддерживает ли данный модуль записи vsS добавочные или разностные резервные копии, извлекая маску схемы резервного копирования средства записи с помощью метода IVssExamineWriterMetadata::GetBackupSchema.

Маска схемы резервного копирования средства записи, поддерживающей добавочные или разностные методы VSS, будут содержать либо VSS_BS_INCREMENTAL, либо VSS_BS_DIFFERENTIALили оба. Записи также могут указывать ограничения на их участие с флагом VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL. (Дополнительные сведения о схемах резервного копирования см. в VSS_BACKUP_SCHEMA.

настройка состояния резервного копирования запрашивающего средства

Запрашивающий объект указывает, что резервная копия является добавочной или разностной резервной копией путем задания типа резервного копирования VSS_BT_INCREMENTAL или VSS_BT_DIFFERENTIAL с помощью метода IVssBackupComponents::SetBackupState перед созданием события PrepareForBackup.

Метод IVssBackupComponents::SetBackupState также используется для указания того, предоставляется ли запроситель частичной поддержки файлов, которая часто используется для реализации определенных добавочных операций резервного копирования и восстановления.

Получение спецификаций записи для добавочных и разностных резервных копий

Сведения о спецификации резервного копирования файлов на уровне файлов (VSS_FILE_SPEC_BACKUP_TYPE), содержащиеся в документе метаданных записи записи, доступны для проверки после успешного возвращения IVssBackupComponents::CollectWriterMetadata.

Однако модуль записи может добавлять разностные файлы или запрашивать поддержку частичного файлов до успешной обработки события PostSnapshot.

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

получение сведений о спецификации резервного копирования файлов

Сведения о спецификации резервного копирования файлов на уровне файлов (VSS_FILE_SPEC_BACKUP_TYPE) содержатся в документе метаданных записи и могут быть рассмотрены сразу после успешного возвращения IVssBackupComponents::CollectWriterMetadata.

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

Запрашивающий объект может определить, какой документ метаданных записи записи должен запрашиваться с помощью IVssBackupComponents::GetWriterComponentsCount и IVssBackupComponents::GetWriterComponents. Экземпляр интерфейса IVssWriterComponentsExt, возвращаемого методом IVssBackupComponents::GetWriterComponents предоставляет сведения о записи с помощью метода IVssWriterComponentsExt::GetWriterInfo.

Запрашивающий получает сведения о компонентах через экземпляры интерфейса IVssWMComponent, соответствующего включенной компоненту, управляемому заданным средством записи, с помощью IVssExamineWriterMetadata::GetComponent.

Сведения о наборах файлов, управляемых компонентом, соответствующим интерфейсу IVssWMComponent, получаются вызовами IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFileили IVssWMComponent::GetDatabaseLogFile (по мере необходимости).

Эти вызовы могут возвращать экземпляры интерфейса IVssWMFiledesc для каждого набора файлов компонента.

Тип резервного копирования спецификации файла набора файлов получен путем вызова IVssWMFiledesc::GetBackupTypeMask.

получение частичных файлов и разностных сведений о файлах

Запрашивающий получает частичный файл и разностные сведения о файле через интерфейс IVssComponent.

Запрашивающий объект может итерировать все записи, включенные в резервную копию, с помощью IVssBackupComponents::GetWriterComponentsCount и IVssBackupComponents::GetWriterComponents.

Экземпляр интерфейса IVssWriterComponentsExt, возвращаемого IVssBackupComponents::GetWriterComponents предоставляет доступ ко всем экземплярам интерфейса IVssComponent в данного модуля записи явно включены компоненты с помощью методов IVssWriterComponentsExt::GetComponent и IVssWriterComponentsExt::GetComponentCount.

Запрашивающий объект должен пройти через все экземпляры IVssComponent для всех писателей, схема которых поддерживает добавочное или разностное резервное копирование, то есть записи, маски схемы резервного копирования которых возвращаются IVssExamineWriterMetadata::GetBackupSchema, включает VSS_BS_INCREMENTAL, если тип резервного копирования VSS_BT_INCREMENTAL, или VSS_BS_DIFFERENTIAL, если тип резервного копирования VSS_BS_DIFFERENTIAL.

Частичные сведения о файле получаются путем вызова IVssComponent::GetPartialFileCount и IVssComponent::GetPartialFile (см. работа с частичными файлами).

Для записей, поддерживающих операции резервного копирования на основе данных последнего изменения файла (записи, маски схемы резервного копирования, как возвращается IVssExamineWriterMetadata::GetBackupSchema, включает VSS_BS_LAST_MODIFY), разностные сведения о файле получаются путем вызова IVssComponent::GetDifferencedFilesCount и IVssComponent::GetDifferencedFile.

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

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

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

Реализация добавочных или разностных резервных копий

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

не поддерживает записи

Записи, схема которых не поддерживает добавочную или разностную резервную копию (записи, маску схемы резервного копирования которых возвращаются IVssExamineWriterMetadata::GetBackupSchema, включает VSS_BS_INCREMENTAL, если тип резервного копирования VSS_BT_INCREMENTAL или не включает VSS_BS_DIFFERENTIAL, если тип резервного копирования VSS_BS_DIFFERENTIAL) не может обеспечить прямую поддержку добавочной или разностной операции резервного копирования.

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

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

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

поддержки писателей

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

  1. резервное копирование разных файлов:

    Для записей, поддерживающих операции резервного копирования на основе данных последнего изменения (записи с маской схемы резервного копирования, как возвращается IVssExamineWriterMetadata::GetBackupSchema, включает VSS_BS_LAST_MODIFY), запрашивающий использует сведения о пути, спецификации файла и флаге рекурсии, возвращаемые IVssComponent::GetDifferencedFile для создания списка файлов в качестве кандидатов для добавочного резервного копирования или восстановления.

    IVssComponent::GetDifferencedFile также может возвращать время последнего изменения (выраженное как структура FILETIME).

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

    Например, если время последнего изменения файла, возвращаемое записью, было:

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

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

  2. использование частичных операций с файлами:

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

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

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

  3. работа с типом резервного копирования спецификации файлов:

    Обработав все разностные файлы и частичные операции с файлами, запрашивающий теперь обрабатывает все оставшиеся файлы в резервном наборе на основе типа резервного копирования спецификации файла (VSS_FILE_SPEC_BACKUP_TYPE).

    Существует три значения перечисления VSS_FILE_SPEC_BACKUP_TYPE, влияющие на разностные и добавочные резервные копии:

    • VSS_FSBT_ALL_BACKUP_REQUIRED
    • VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED

    Существует три значения", необходимых для теневого копирования:

    • VSS_FSBT_ALL_SNAPSHOT_REQUIRED
    • VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED

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

    Флаг "обязательное резервное копирование", примененный к операциям резервного копирования INCREMENTAL, DIFFERENTIAL или ALL, указывает, что средство записи ожидает, что копия текущей версии набора файлов будет доступна после восстановления любой операции резервного копирования. Как правило, это означает, что если набор файлов помечен как "требуется резервное копирование", запроситель будет копировать все его члены в резервный носитель во время добавочной или разностной резервной копии независимо от того, когда их резервное копирование или изменение произошло в последний раз.

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

метки резервного копирования

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

Формат и сведения, содержащиеся в строках, содержащих сведения о метке резервного копирования, являются частными для модуля записи, создающего их; Запрашиватель не знает, как обработать эти сведения.

Поддержка записи сохраняет метку резервного копирования в документе компонентов резервного копирования в виде строки с помощью метода IVssComponent::SetBackupStamp.

Роль запрашивающего средства в обработке сведений о метке резервного копирования (если она существует), чтобы сделать ее доступной для записи путем вызова IVssBackupComponents::SetPreviousBackupStamp в будущей операции резервного копирования или восстановления.