SQL Server 2016环境下部署SSIS包出现0xC0011008错误如何解决?
问题原因分析
- 你当前使用的是SQL Server 2012对应的32位dtutil工具(版本号110),加载已升级为2016版本的SSIS包时版本不兼容,直接触发
0xC0011008XML加载错误。 - 64位Program Files目录下找不到dtutil,是因为你部署SQL Server 2016时未勾选安装Integration Services共享功能组件:SQL Server 2016对应dtutil的版本号为130,64位默认路径为
C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtutil.exe,32位默认路径为C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil.exe。 - SQL作业显示成功但未实际执行包,通常是权限不匹配或运行时位数不兼容导致的静默失败:包在VS中手动运行使用的是当前登录用户权限,而SQL作业默认使用SQL代理服务账号权限,二者权限范围不一致。
解决方案
- 重新运行SQL Server 2016安装程序,勾选安装【Integration Services】共享功能,确认对应130版本的dtutil存在。
- 修改批处理命令中的dtutil路径为SQL Server 2016对应的版本,修正后的命令参考:
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtutil.exe" /FILE "G:\MSDB2016\MSDB2016\MSDB2016\Package.dtsx" /DestServer 你的目标SQL实例名 /COPY SQL;"MISSnOP_Test2016\Package" /Q > test1.txt
- 排查SQL作业执行异常问题:
- 确认作业步骤的运行账号、SQL代理服务账号拥有SSIS包执行权限、目标数据库读写权限、包中引用的其他资源访问权限。
- 检查作业SSIS步骤的配置:如果包依赖32位组件(如32位Office驱动、32位ODBC驱动),需要勾选【使用32位运行时】选项;无32位依赖则直接使用默认64位运行时即可。
- 部署完成后先在SSMS中手动执行一次SSIS包,确认审计表数据更新正常后,再开启SQL作业定时执行。
内容的提问来源于stack exchange,提问作者Youth Icon
相关产品推荐
相关产品推荐

