编写器元数据文档内容

编写器元数据文档包含三组数据:编写器标识和分类信息、编写器级规范和组件数据。

编写器标识信息

编写器标识和分类信息包括以下内容:

除了编写器实例是唯一的,在初始化 CVssWriter 对象时由系统生成,所有这些值都由编写器在调用 CVssWriter::Initialize 时设置,并且通过调用 IVssExamineWriterMetadata::GetIdentity 可供请求者使用。

由于编写器实例是唯一生成的,因此从存储的编写器元数据文档检索的存储编写器实例不太可能有用。

通过检查 VSS_USAGE_TYPE,应用程序可以确定编写器是否正在管理常规应用程序数据,或者它使用的文件是系统启动状态的一部分,还是由系统服务使用。 备份和还原应用程序需要遵循使用类型,以帮助维护系统稳定性。

VSS_SOURCE_TYPE标志指示管理要备份的数据的编写器在正常操作期间执行哪种类型的应用程序。

目前,区别仅限于指定编写器是作为事务性数据库操作还是非事务数据库操作的一部分生成文件,或者文件是否是更常规的活动类型的结果。 此列表可能会随着时间推移而增加。 此信息可用于确定编写器文件中预期的普通活动级别。

Writer-Level规范

编写器级规范包含其范围广泛的编写器信息,适用于独立于一个组件管理数据的所有数据。

编写器必须始终指定 还原方法

可以选择指定以下内容:

包含和排除文件列表包含组件中超出的文件信息,其规范取代了组件规范。

还原方法规范

还原方法IVssCreateWriterMetadata::SetRestoreMethod 在编写器元数据文档中设置,并由请求者使用 IVssExamineWriterMetadata::GetRestoreMethod 检索。

在设置还原方法时,编写器指示由编写器管理的所有文件的首选文件还原方式,也称为原始还原目标。 例如,还原方法指定是否应允许编写器管理的所有文件覆盖磁盘上的当前文件。 (有关详细信息,请参阅 VSS 还原配置VSS_RESTOREMETHOD_ENUM 。)

排除文件列表规范

排除列表允许通过显式阻止某些文件包含在备份集中来微调组件中的通配符规范。

例如,组件可能有一个 文件集 ,其中包含 c:\Database\*.*的文件规范。 虽然这是一个方便的定义,但偶尔可能会生成临时文件 (可能以 *.tmp) 的形式生成,并且编写器始终希望阻止其备份。

在这种情况下,编写器将使用 IVssCreateWriterMetadata::AddExcludeFiles 将 *.tmp 添加到其排除列表。 此规范可以是递归的。

请求者将使用 IVssExamineWriterMetadata::GetExcludeFile 查询此信息。

排除文件列表优先于组件文件列表。

因此,在编写器元数据文档中为备份指定的文件列表将包含 显式包含 的组件和 隐式包含 组件中指定的所有文件,而不包含所有排除的文件。

备用位置映射规范

备用位置映射最初是在创建编写器元数据文档期间设置的,如果无法将文件还原到原始位置,则指示磁盘上的文件可以还原到的位置。

该信息将添加为具有 IVssCreateWriterMetadata::AddAlternateLocationMapping 的以 null 结尾的宽字符串,并由 IVssExamineWriterMetadata::GetAlternateLocationMapping 作为 IVssWMFiledesc 对象检索。

尽管使用编写器级接口 (IVssCreateWriterMetadata 和 IVssExamineWriterMetadata) 指定和检查备用位置映射,但它们是在文件集方面指定的。 指定备用位置映射 (路径、文件规范和递归标志) 的文件集必须与已添加到编写器的组件之一的文件集匹配 (请参阅 将文件添加到组件) 。

有关详细信息,请参阅 非默认备份和还原位置

Component-Level信息

组件 是构成用于备份和还原的逻辑单元的文件集合。 组件 (中的所有文件(显式排除) 除外)都必须作为一个单元进行备份和还原。

编写器使用 IVssCreateWriterMetadata::AddComponent 添加组件,并指定以下组件信息:

  • 类型
  • 名称
  • 逻辑路径 ((如果有任何) )
  • 支持的功能
  • 可选择性
  • 编写器在还原期间要使用的元数据
  • 显示信息
  • 通知信息

备份的可选择性和还原的可选择性完全相互独立,编写器将它们与逻辑路径结合使用,以指示其管理的各种组件之间的关系。 编写器可以指示 显式包含 的组件需要哪些组件 (请求者) 可以显式包含的组件,以及只能 隐式包含的组件。 (请参阅 使用可选择性和逻辑路径。)

使用 IVssCreateWriterMetadata::AddFilesToFileGroupIVssCreateWriterMetadata::AddDatabaseFilesIVssCreateWriterMetadata::AddDatabaseLogFiles 将文件添加到给定组件。 (请参阅 将文件添加到 Components。)

在备份期间将文件添加到组件时,编写器必须指定一个文件集, (定义要备份的文件的路径、文件规范和递归标志) 。

编写器还可以为备份指定 备用路径 ,这不应与前面提到的 备用位置映射 混淆。 此备用路径指示备份卷时要从中复制文件的非默认位置。

可以通过 IVssExamineWriterMetadata::GetComponent 返回的 IVssWMComponent 接口获取有关编写器元数据文档中给定组件的信息。

文件和路径在 IVssWMComponent 中作为 IVssWMFiledesc 对象返回。

编写器的组件信息在由编写器 定义组件中进行了详细讨论。