使用备份的可选择性

下表描述了备份操作可能涉及的四种类型的组件。

组件类型 说明
Nonselectable-for-backup 组件
其逻辑路径中没有可选择的备份上级。
Selectable-for-backup 组件
其逻辑路径中没有可选择的备份上级。
Nonselectable-for-backup 子组件
不可选择的备份组件在其路径中具有可选择的备份上级。
Selectable-for-backup 子组件
Selectable-for-backup 组件在其路径中具有 selectable-for-backup 上级。

 

此外,如果其他组件在其逻辑路径中将其作为上级,则任何可选择的备份组件(无论其是否具有可选备份上级)都会定义 组件集

管理备份组件选择的规则可以汇总如下:

  • 当逻辑路径中没有可选备份上级的任何组件(无论该组件是可针对备份选择的还是不可选择的 for-backup)包含在备份中时,都必须 显式包含该组件。 这意味着这些组件的元数据将添加到备份组件文档。

    请求者使用 IVssBackupComponents::AddComponent 方法显式添加这些组件。

  • Nonselectable-for-backup 子组件始终 隐式包含在 备份中。 这意味着这些组件的元数据不是备份组件文档的一部分。

  • 如果备份中显式包含该上级组件,则隐式包含 selectable-for-backup 子组件。 在这种情况下,这些组件的元数据不会添加到备份组件文档中。 如果可隐式选择的备份子组件定义组件集,则也会隐式选择该组件集的成员。

  • 请求者仍然可以使用 IVssBackupComponents::AddComponent 方法显式包含其 selectable-for-backup 子组件(其 selectable-for-backup 子组件未显式包含在备份中)。 然后,组件的元数据将添加到备份组件文档。 此外,如果 selectable-for-backup 子组件定义了组件集,则该组件集的成员将隐式包含在备份中。

可以使用 组件的逻辑路径 中讨论的“MyWriter”案例作为示例来说明备份的可选择性。

组件名称 逻辑路径 可选择进行备份
“可执行文件” "" N
“ConfigFiles” “可执行文件” N
“LicenseInfo” "" Y
“Security” "" Y
“UserInfo” “Security” N
“证书” “Security” N
“writerData” "" Y
“Set1” “writerData” N
“Jan” “writerData\Set1” N
“Dec” “writerData\Set1” N
“Set2” “writerData” N
“Jan” “writerData\Set2” N
“Dec” “writerData\Set2” N
“Query” “writerData\QueryLogs” N
“使用情况” “writerData” Y
“Jan” “writerData\Usage” N
“Dec” “writerData\Usage” N

 

每当备份“MyWriter”时,使用 IVssBackupComponents::AddComponent 方法显式包含“可执行文件”组件时,将隐式包含“ConfigFiles”组件。

组件“LicenseInfo”是一个独立的可选备份组件。 可以使用 IVssBackupComponents::AddComponent 方法由请求者自行决定选择它,但其选择不会选择其他组件。

selectable-for-backup 组件“Security”定义一个简单的组件集,其中包含两个不可选择的备份子组件“UserInfo”和“Certificates”。 如果备份显式包含“安全性”,则始终隐式包含“UserInfo”和“证书”。 除非包含“安全性”,否则无法将子组件“UserInfo”或“Certificates”包含在备份操作中。

如果选择组件“writerData”,则隐式选择不可选择的备份组件“Set1”、“Set2”和“Query”以及可选择的备份组件“Usage”。 其中每个组件都有隐式选择用于备份的子组件。 不会将其元数据添加到备份组件文档。

如果未选择组件“writerData”,则不包括不可选择的备份组件“Set1”、“Set2”和“Query”。

但是,请求者可以选择显式包含备份组件“使用情况”的可选项。 此组件的元数据将添加到备份组件文档中。 “Usage”的子组件“Jan”和“Dec”将隐式添加到备份,但不会将其信息添加到备份组件文档。

显式包含用于备份的组件将在备份组件文档中创建相应的 IVssComponent 实例。

请求者将使用文档中包括的 IVssBackupComponents::GetWriterComponents 检查这些编写器 (,) 并从其备份组件文档中检索有关显式包含的组件的信息,并检索存储的 IVssComponent 对象。

由于文件集信息 (文件规范、路径和递归标志) 备份组件文档中存在的组件,也不存在有关隐式添加的组件的任何信息,因此请求者必须查询编写器元数据文档以获取有关备份组件文档中包含的所有组件的完整信息。