编写器备份架构支持

若要完全实现备份,需要系统编写器的参与。 不同类型的受支持的备份称为架构,由 VSS_BACKUP_SCHEMA 枚举成员的位掩码(或按位 OR)指示。 当前支持的有效架构包括:

  • 默认架构:完整(VSS_BS_UNDEFINED)-表示编写器支持备份,无论其上次备份日期如何,所有文件都将备份。 请求者可以更新每个文件的备份历史记录,并且支持VSS_BS_TIMESTAMPED枚举值的编写器将存储更新的时间戳与请求者。 此备份方案可用作增量备份或差异备份的基础。

    还原完整备份只需要单个备份映像。

  • 复制备份(VSS_BS_COPY)(如VSS_BS_FULL备份架构)表示编写器支持备份,无论其上次备份日期如何,都将备份所有文件。 但是,请求者或编写器不会更新每个文件的备份历史记录,这种备份不能用作增量备份或差异备份的基础。

  • 日志文件(VSS_BS_LOG)-仅备份编写器的日志文件。 这要求编写器使用 IVssCreateWriterMetadata::AddDatabaseLogFiles 方法将至少一个文件添加到至少一个组件。 此备份类型特定于 VSS。

  • 自定义还原位置 (VSS_BS_WRITER_SUPPORTS_NEW_TARGET) - 指示在还原时更改请求者的编写器支持,并在还原时更改其文件。 这意味着编写器已编码为检查此类重定位(使用 IVssComponent::GetNewTarget),并且具有处理重定位文件的能力。

  • 使用 Move (VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE) 进行还原 — 指示编写器支持运行具有相同类 ID 的多个编写器实例,并支持在还原时将组件移动到其他编写器实例的请求者。 编写器实例是通过使用作为 wszWriterInstanceName 参数传递给 CVssWriter::Initialize 方法的永久性编写器实例名称指定的。 请求者可以使用 IVssExamineWriterMetadataEx::GetIdentityEx 获取编写器实例名称,并使用 IVssBackupComponentsEx::SetSelectedForRestoreEx在还原过程中移动组件。

    Windows Server 2003 和 Windows XP: 在 Windows Server 2003 Service Pack 1(SP1)之前不支持此值。

  • 增量 (VSS_BS_INCREMENTAL) - 指示编写器使用 VSS API 帮助请求者,确保仅将自上次完整备份或增量备份以来已更改或添加的文件复制到存储介质。

    还原增量备份需要原始备份映像和自初始备份以来创建的所有增量备份映像。

  • 差异(VSS_BS_DIFFERENTIAL)- 指示编写器使用 VSS API 来帮助请求者确保仅将自上次完整备份以来已更改或添加的文件复制到存储介质;将忽略所有中间备份信息。

    还原差异备份需要原始备份映像和自上次完整备份以来进行的最新差异备份映像。

  • 增量/差异:时间戳支持(VSS_BS_TIMESTAMPED)- 指示编写器支持使用 VSS 时间戳机制将文件包含在增量或差异作中。 在备份时,编写器必须使用 IVssComponent::SetBackupStamp 方法存储 文件集的 备份标记,并在还原时使用 IVssComponent::GetPreviousBackupStamp检索该文件。

  • 增量/差异:上次修改支持时间(VSS_BS_LAST_MODIFY)- 指示在使用差异文件实现增量备份或差异备份时,编写器可以单独提供上次修改时间信息。 可以通过 IVssComponent::AddDifferencedFilesByLastModifyTime 方法向请求者提供此信息。

  • 增量/差异:支持限制(VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL)- 表示对差异备份架构或增量备份架构的编写器支持,但仅以独占方式表示:例如,不能使用差异备份来跟踪增量备份。

  • 独立系统状态 (VSS_BS_INDEPENDENT_SYSTEM_STATE) - 指示编写器支持备份属于系统状态的数据,但也可以独立于系统状态进行备份。

    Windows Server 2003 和 Windows XP: 在 Windows Vista 之前不支持此值。

  • Roll-Forward 还原(VSS_BS_ROLLFORWARD_RESTORE)-指示编写器支持使用 IVssBackupComponentsEx2::SetRollForward设置前滚还原点的请求者。

    Windows Server 2003 和 Windows XP: 在 Windows Vista 之前不支持此值。

  • 还原重命名 (VSS_BS_RESTORE_RENAME) - 指示编写器支持使用 IVssBackupComponentsEx2::SetRestoreName设置还原名称的请求者。

    Windows Server 2003 和 Windows XP: 在 Windows Vista 之前不支持此值。

  • 权威还原 (VSS_BS_AUTHORITATIVE_RESTORE) - 指示编写器支持使用 IVssBackupComponentsEx2::SetAuthoritativeRestore设置授权还原的请求者。

编写器使用 IVssCreateWriterMetadata::SetBackupSchema 方法设置其架构,并且请求者通过调用 IVssExamineWriterMetadata::GetBackupSchema来获取每个编写器的架构。