You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2017作业无法识别SSIS包Oracle连接报错排查

SSIS SQL Server 2017 代理作业无法识别Oracle连接问题排查指引

问题背景

  • 服务器已安装VS2017,基于Microsoft连接器开发的SSIS包在同服务器的VS2017环境中可正常运行
  • 通过SQL Server 2017代理调度作业执行该SSIS包时,包内配置的SQL Server连接可正常识别加载,Oracle连接无法识别,作业执行失败
  • 报错截图参考:SSIS作业Oracle连接加载失败报错

核心报错

错误代码0xC0010009:无法在连接管理器集合中找到ID为"{89E8-08C-4D-BE47-D1F0}"的连接管理器;"Oracle Source"组件的连接集合中"Oracle Source.Connections[MSOraConnection]"依赖该连接管理器,需验证连接配置。

排查解决步骤

1. 优先校验Microsoft Oracle连接器的运行时版本与安装状态

  • VS环境调试正常仅代表设计时组件安装到位,SQL Server 2017的SSIS运行时为独立环境,必须单独安装适配SSIS 2017版本的Microsoft Connector for Oracle运行时安装包。
  • 禁止安装适配SSIS 2019/2022的高版本连接器,版本不兼容时运行时会直接跳过加载不匹配的连接管理器,触发找不到连接的报错。
  • 安装完成后必须重启SQL Server代理服务,否则新安装的组件不会被运行时识别。

2. 校验运行账号权限、驱动位数匹配性

  • VS调试默认使用当前登录服务器的个人账号权限,SQL Server代理作业默认使用服务启动账号或自定义作业代理账号,两类账号的权限、系统资源可见范围完全独立。
  • 打开SQL Server配置管理器,确认SQL Server代理服务的运行账号,使用该账号登录服务器测试Oracle客户端连通性,同时确认该账号对连接器默认安装路径C:\Program Files\Microsoft SQL Server\140\DTS\Connections拥有读取、执行权限。
  • 核对驱动位数:如果SSIS包开发时引用的是32位Oracle驱动,作业步骤的「执行SSIS包」配置页必须勾选「使用32位运行时」;如果使用64位驱动则取消该勾选,位数不匹配时连接管理器会直接加载失败。

3. 校验包部署版本、保护级别配置

  • 在VS中右键SSIS项目选择「重新生成」,将输出的最新ispac部署包覆盖部署到目标位置,排除旧版本包残留导致的连接ID不匹配问题。
  • 检查包保护级别配置:如果包保护级别设置为EncryptSensitiveWithUserKey,VS中保存的Oracle连接密码是使用开发人员个人账号加密的,SQL Server代理运行时使用服务账号无法解密敏感信息,也会触发连接加载失败。该场景下可将保护级别调整为EncryptSensitiveWithPassword,或部署到SSISDB后使用「依靠服务器存储和角色进行访问控制」模式,重新输入保存Oracle连接密码后再执行作业。

4. 兜底校验项

  • 若包部署在SSIS目录,打开对应包的配置页,检查项目级、包级的连接管理器配置覆盖项,确认Oracle连接管理器未被误删、连接ID配置正确。
  • 检查系统环境变量:确认对应位数的Oracle Client已完成安装,且Oracle Client的bin目录已添加到系统Path变量中,修改环境变量后需重启服务器才能对服务账号生效。

内容的提问来源于stack exchange,提问作者Doodle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:33:24