Работа с возможностью выбора для резервного копирования

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

Тип компонента Описание
Компоненты, не доступные для резервного копирования
В логических путях отсутствуют выбираемые для резервного копирования предки.
Компоненты, доступные для резервного копирования
В логических путях отсутствуют выбираемые для резервного копирования предки.
Неизбираемые подкомпоненты для резервного копирования
Компоненты, не поддерживающие выбор для резервного копирования, в пути которых есть предки с выбором для резервного копирования.
Подкомпоненты, которые можно выбрать для резервного копирования
Компоненты, доступные для выбора для резервного копирования, с выбираемыми предками для резервного копирования в пути.

 

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

Правила, регулирующие выбор компонентов для резервного копирования, можно свести к следующему:

  • Если любой компонент без предка с возможностью выбора для резервного копирования в своем логическом пути ( независимо от того, является ли компонент selectable-for-backup или неизбираемым для резервного копирования) включен в резервную копию, он должен быть включен явным образом. Это означает, что метаданные для этих компонентов добавляются в документ о компонентах резервного копирования.

    Инициаторы запроса явно добавляют эти компоненты с помощью метода IVssBackupComponents::AddComponent .

  • Подкомпоненты, не доступные для резервного копирования, всегда включаются в резервную копию неявно . Это означает, что метаданные для этих компонентов не являются частью документа о компонентах резервного копирования.

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

  • Подкомпоненты selectable-for-backup, предки которых selectable-for-backup явно не включены в резервную копию, по-прежнему могут быть явно включены инициатором запроса с помощью метода IVssBackupComponents::AddComponent . Затем метаданные компонента будут добавлены в документ компонентов резервного копирования. Кроме того, если подкомпонент selectable-for-backup определяет набор компонентов, члены этого набора компонентов неявно включаются в резервную копию.

Случай MyWriter, рассматриваемый в разделе Логический путь компонентов , можно использовать в качестве примера, чтобы проиллюстрировать возможность выбора для резервного копирования.

Имя компонента Логический путь Можно выбрать для резервного копирования
"Исполняемые файлы" "" Нет
"ConfigFiles" "Исполняемые файлы" N
LicenseInfo "" Да
Security "" Да
UserInfo Security N
"Сертификаты" Security N
"writerData" "" Да
"Set1" "writerData" N
"Ян" "writerData\Set1" N
"Дек" "writerData\Set1" N
"Set2" "writerData" N
"Ян" "writerData\Set2" N
"Дек" "writerData\Set2" N
"Запрос" "writerData\QueryLogs" N
"Использование" "writerData" Да
"Ян" "writerData\Usage" N
"Дек" "writerData\Usage" N

 

Каждый раз, когда выполняется резервное копирование MyWriter, явное включение компонента "Исполняемые файлы" с помощью метода IVssBackupComponents::AddComponent неявно включает компонент "ConfigFiles".

Компонент LicenseInfo является автономным компонентом, который можно выбрать для резервного копирования. Его можно выбрать с помощью метода IVssBackupComponents::AddComponent по усмотрению инициатора запроса, но при выборе не будут выбраны другие компоненты.

Компонент "Безопасность", доступный для резервного копирования, определяет простой набор компонентов, содержащий два неизбираемых для резервного копирования подкомпонента: UserInfo и Certificates. Если для резервного копирования явно включен параметр "Безопасность", то "UserInfo" и "Сертификаты" всегда включаются неявно. Невозможно включить подкомпоненты UserInfo или Certificates в операцию резервного копирования, если не включен параметр Security.

Если выбран компонент "writerData", то неявно выбираются компоненты Set1, Set2 и Query, а также компонент selectable-for-backup "Usage" (Использование). Каждый из этих компонентов имеет подкомпоненты, которые неявно выбираются для резервного копирования. Никакие из их метаданных не будут добавлены в документ компонентов резервного копирования.

Если компонент "writerData" не выбран, компоненты Set1, Set2 и Query, не доступные для резервного копирования, не включаются в резервные копии.

Однако инициаторы запроса могут явно включить возможность выбора для компонента резервного копирования "Использование". Метаданные для этого компонента будут добавлены в документ о компонентах резервного копирования. Подкомпоненты "Использование" "Jan" и "Dec" будут неявно добавлены в резервную копию, но их сведения не будут добавлены в документ по компонентам резервного копирования.

Явное включение компонента для резервного копирования создаст соответствующий экземпляр IVssComponent в документе Компоненты резервного копирования.

Инициатор запроса получает сведения о явно включенных компонентах из документа компонентов резервного копирования путем проверки этих модулей записи (с помощью IVssBackupComponents::GetWriterComponents), включенных в документ, и получения сохраненных объектов IVssComponent .

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