"VSS 错误 XML 文档太长。 hr = 0x80070018中执行备份时出现"Windows
09/17/2020
本文内容
本文提供了一种解决在备份过程中执行备份时Windows。
适用于: Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号: 3098315
症状
当您在 Windows Server 2012 及更早版本 (备份回 Windows Server 2008) 时,应用程序日志中会记录以下错误之一:
日志名称:应用程序
源:VSS
事件 ID:8193
级别:错误
说明:
卷影复制服务错误:意外错误调用例程
XML 文档太长。 hr = 0x80070018,程序已发出命令,但命令长度不正确。
操作:编写器修改备份文档
上下文:执行
上下文:请求程序
编写器实例 ID:{14BE9B90-62D7-4A2D-B57F-53D21EAB0789}
原因
当卷影复制服务 (基于 VSS) 备份时,将查询每个订阅的 VSS 编写器,以寻找组件列表。 当该列表生成大于大小限制的元数据文件时,会出现"症状"部分中描述的问题。
常见原因:
TemporaryInternetFiles 目录中的文件太多,特别是 C:Windows Microsoft.NET \ \ \ Framework64 \ v2.0.50727 \ TemporaryInternetFiles。 这将导致系统编写器达到 VSS 元数据文件的大小限制。
VSS 编写器已在其元数据文件中添加过多组件。
解决方案
如果 TemporaryInternetFiles 中的文件太多,请备份文件,然后从 C: Windows \ \ Microsoft.NET \ Framework64 \ v2.0.50727 \ TemporaryInternetFiles 位置中删除这些文件。 然后,系统编写器应该能够完成,而不会出现错误。
如果无法识别导致失败的编写器,请收集编写器元数据文档的示例,然后查看每个编写器的组件。
若要收集 VSS 编写器元数据,请按照以下步骤操作:
从管理命令提示符处,运行以下命令:
diskshadow /l
C:\Metadata.txt
list writers detailed
Exit
收集生成的文件后,查看并统计每个编写器的组件。
标识应用程序编写器后,减少组件数量,直到不再超出限制。
应用程序组件示例
每个组件都由"+ 组件"名称和"- 组件依赖项:"引用之间的行表示。 每个组件都计为一个组件。
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]
- 可选择:TRUE
- 是顶级:TRUE
- 备份完成后通知:FALSE
- 组件:
- 文件列表:Path = \ D:Hyper-V \ 虚拟机 \ ,Filespec = 006F792F-99EA-4A4A-A241-F8853A3B0CB6.xml
- 文件列表:Path = \ D:Hyper-V\Snapshots,Filespec = A544BB47-0349-4EED-ABDC-DFE66CAF2927.xml
- 文件列表:Path = \ D:Hyper-V \ 快照 \ A544BB47-0349-4EED-ABDC-DFE66CAF2927,Filespec = *
\ 受此组件影响的路径:
-\D:Hyper-V \ 快照
-\D:Hyper-V \ 快照 \ A544BB47-0349-4EED-ABDC-DFE66CAF2927
-\D:Hyper-V \ 虚拟机\
- 受此组件影响的卷:
-\\?\Volume{9710864d-1433-11e5-93ef-806e6f6e6963} \ [D: \ ]
SQL示例:
-组件依赖项:SQL - + 组件 \ "SqlServerWriter:SQL2012 \ 模型"
- 名称:model
- 逻辑路径:SQL2012
- 完整路径 \ :SQL2012 \ 模型
- 标题:
- 类型:VSS_CT_FILEGROUP [2]
- 可选择:TRUE
- 是顶级:TRUE
- 备份完成后通知:TRUE
- 组件:
-文件列表:Path = \ \ \ C:MSSQL11 Microsoft SQL Server程序文件。MSSQLSERVER \ MSSQL\DATA, Filespec = model.mdf
-文件列表:Path = \ \ \ C:MSSQL11 Microsoft SQL Server程序文件。MSSQLSERVER \ MSSQL \ DATA, Filespec = modellog.ldf
- 受此组件影响的路径:
-\ \ \ C:MSSQL11 Microsoft SQL Server程序文件。MSSQLSERVER \ MSSQL \ 数据
- 受此组件影响的卷:
-\\?\Volume{e18ba371-5b9e-11e4-9400-806e6f6e6963} \ [C: \ ]
- 组件依赖项: