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


Создание резервного набора данных

Резервный набор данных — это список всех файлов для резервного копирования, их расположения и способов их резервного копирования.

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

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

Алгоритм выбора файлов для резервного копирования должен выполняться в экземпляре модуля записи по экземпляру модуля записи по компоненту (как это будет происходить во время восстановления; см. раздел Создание набора восстановления) и может выполнять следующие действия:

  1. Определение томов, содержащих файлы модуля записи и соответствующие объекты устройства
  2. Использование сведений о наборе файлов (содержащихся в объектах IVssWMFiledesc , возвращаемых IVssExamineWriterMetadata::GetExcludeFile) для создания списка явно исключенных файлов с помощью FindFileFirst, FindFileFirstEx и FindNextFile.
  3. Итерации по всем компонентам модуля записи с помощью IVssExamineWriterMetadata::GetComponent. Если выбран доступный для выбора компонент, используйте логический путь для получения тех неизбираемых компонентов, которые с ним связаны в наборе компонентов. (См . раздел Работа с возможностью выбора и логическими путями.)
  4. Получение наборов файлов , содержащихся в каждом выбранном компоненте, с помощью интерфейса IVssWMComponent , соответствующего каждому компоненту, который он содержит.
  5. Создание списка файлов из спецификаций при необходимости с помощью FindFileFirst, FindFileFirstEx и FindNextFile.
  6. Проверка каждого файла в списке, созданном на основе сведений о компонентах, со списком исключенных файлов, созданных выше. Для этого следует использовать путь по умолчанию к файлу (возвращаемый IVssWMFiledesc::GetPath), а не альтернативным путем, возвращаемым IVssWMFiledesc::GetAlternateLocation. Если файл совпадает с исключенным списком, резервная копия не будет создана.
  7. Выбор фактического расположения для резервного копирования (с использованием альтернативного пути, если он был задан)
  8. На этом этапе доступен полный список файлов и их расположений, и может начаться резервное копирование.

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

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\FilesNotToBackup

Инициатор запроса использует подразделы в этом разделе следующим образом:

  • Если модуль записи присутствует в системе и имеется подраздел, имя которого совпадает с именем модуля записи, этот подраздел необходимо игнорировать.
  • Если модуль записи присутствовал в системе, но в настоящее время отсутствует в резервном наборе данных и имеется соответствующий подраздел, все файлы, указанные в данных подраздела, исключаются и должны быть удалены из резервного набора данных.
  • Приложение резервного копирования добавляет файлы в данные подраздела, создавая значение MULTI_SZ, содержащее список спецификаций файлов, резервные копии для которые не должны создаваться. Каждая строка в MULTI_SZ значении должна содержать одну спецификацию файла.
  • Спецификации файла могут содержать ? и * подстановочные знаки. Спецификацию можно сделать рекурсивной, добавив в конец параметр /s. Например, если указать "%TEMP%\* /s", все файлы в каталоге %TEMP% и всех его подкаталогах не будут архивироваться.