VSS错误:XML文档太长。 在 Windows 中执行备份时,hr = 0x80070018“ 错误

本文提供了在 Windows 中执行备份时发生的错误的解决方案。

原始 KB 数: 3098315

现象

在 Windows Server 2012 及更早版本中(返回到 Windows Server 2008)中执行备份时,应用程序日志中记录了以下错误之一:

日志名称: 应用程序
来源:VSS
事件 ID:8193
级别:错误
说明:
卷影复制服务错误:调用例程时出现意外错误
XML 文档太长。 hr = 0x80070018,程序发出命令但命令长度不正确。

操作:编写器修改备份文档

背景:执行
上下文:请求者
编写器实例 ID: {14BE9B90-62D7-4A2D-B57F-53D21EAB0789}

原因

执行基于卷影复制服务(VSS)的备份时,会查询每个已订阅的 VSS 编写器以获取组件列表。 列表生成的元数据文件超过大小限制时,会出现症状部分中所描述的问题。

常见原因:

  • 在 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\TemporaryInternetFiles 目录中,临时互联网文件过多。 这会导致系统编写器达到 VSS 元数据文件的大小限制。
  • VSS 编写器向其元数据文件添加了过多的组件。

决议

如果 TemporaryInternetFiles 中的文件太多,请备份,然后从 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\TemporaryInternetFiles 位置删除文件。 然后,系统编写器应能够完成且不会出现错误。

如果无法识别导致失败的编写器,请收集编写器元数据文档的示例,然后查看每个编写器的组件。

若要收集 VSS 编写器元数据,请执行以下步骤:

  1. 从管理命令提示符运行以下命令:

    diskshadow /l
    C:\Metadata.txt
    list writers detailed
    Exit
    
  2. 收集生成的文件后,查看并计算每个编写器的组件。

  3. 确定应用程序编写器后,请减少组件数,直到不再超出限制。

应用程序组件示例

每个组件由“+ 组件”名称和“- 组件依赖项:”引用之间的行表示。 每一个都计为一个组件。

Hyper-V 示例

“Microsoft Hyper-V VSS 编写器:\006F792F-99EA-4A4A-A241-F8853A3B0CB6”
- 名称:006F792F-99EA-4A4A-A241-F8853A3B0CB6
- 逻辑路径:
- 完整路径:\006F792F-99EA-4A4A-A241-F8853A3B0CB6
- 说明:脱机\i$
- 类型:VSS_CT_FILEGROUP [2]
- 可选择:是
- 是否为顶级:真
- 备份完成时通知:否
-组件:
- 文件列表:路径 = D:\Hyper-V\虚拟机\, Filespec = 006F792F-99EA-4A4A-A241-F8853A3B0CB6.xml
- 文件列表:路径 = D:\Hyper-V\Snapshots,Filespec = A544BB47-0349-4EED-ABDC-DFE66CAF2927.xml
- 文件列表:路径 = D:\Hyper-V\Snapshots\A544BB47-0349-4EED-ABDC-DFE66CAF2927,Filespec = *
\ 受此组件影响的路径:
- D:\Hyper-V\Snapshots
- D:\Hyper-V\Snapshots\A544BB47-0349-4EED-ABDC-DFE66CAF2927
- D:\Hyper-V\虚拟机\
- 受此组件影响的卷:
- \\?\Volume{9710864d-1433-11e5-93ef-806e6f6e6963}\ [D:\]

SQL 示例:

- 组件依赖项:SQL - + 组件“SqlServerWriter:\SQL2012\model”
- 名称:模型
- 逻辑路径:SQL2012
- 完整路径:\SQL2012\model
-标题:
- 类型:VSS_CT_FILEGROUP [2]
- 可选择:是
- 是否为顶级:真
- 备份完成时通知:TRUE
-组件:
- 文件列表:路径 = C:\Program Files\Microsoft SQL Server\MSSQL11。MSSQLSERVER\ MSSQL\DATA, Filespec = model.mdf
- 文件列表:路径 = C:\Program Files\Microsoft SQL Server\MSSQL11。MSSQLSERVER\MSSQL\DATA, Filespec = modellog.ldf
- 受此组件影响的路径:
- C:\Program Files\Microsoft SQL Server\MSSQL11\MSSQLSERVER\MSSQL\DATA
- 受此组件影响的卷:
- \\?\Volume{e18ba371-5b9e-11e4-9400-806e6f6e6963}\ [C:\]
- 组件依赖项: