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

SSIS数据表复制包执行失败求助:跨/同服务器均无法完成

SSIS包连接管理器失败(错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER、0x80004005)

我创建了一个SSIS包用于将数据从一张表复制到另一张表,最初跨服务器复制失败,改为同服务器内复制仍失败。操作完全遵循教程步骤:

  • 创建“Data Flow Task”
  • 在“Data Flow”选项卡下创建“OLE DB Source”和“OLE DB Destination”
  • 配置“OLE DB connection manager”并设置列映射,验证源和目标连接状态正常

执行包时出现以下错误:

[OLE DB Destination 2] 错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“STLEDGSQL01.MES_DEV”调用AcquireConnection方法失败,错误代码0xC0202009。此前可能有更多错误信息说明失败原因。
[SSIS.Pipeline] 错误:OLE DB Destination验证失败,返回错误代码0xC020801C。
[SSIS.Pipeline] 错误:一个或多个组件验证失败。
错误:任务验证期间发生错误。
[Connection manager "STLEDGSQL01.MES_DEV"] 错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误,错误代码:0x80004005。
可用OLE DB记录:源:"Microsoft SQL Server Native Client 11.0",Hresult:0x80004005,描述:"建立SQL Server连接时发生网络相关或实例特定错误。找不到服务器或无法访问。请检查实例名称是否正确,以及SQL Server是否配置为允许远程连接。更多信息请参阅SQL Server联机丛书。"
可用OLE DB记录:源:"Microsoft SQL Server Native Client 11.0",Hresult:0x80004005,描述:"客户端无法建立连接。"
可用OLE DB记录:源:"Microsoft SQL Server Native Client 11.0",Hresult:0x80004005,描述:"注册表信息损坏或丢失。请确保提供程序已正确安装和注册。"

已尝试以下方案但无效:

  • 将包级别的delay validation属性从False设为True
  • 将ProtectionLevel改为EncryptSensitiveWithUserKey

排查与解决步骤

1. 修复SQL Server Native Client 11.0

错误提示明确提到注册表信息异常,优先处理客户端组件:

  • 卸载现有Microsoft SQL Server Native Client 11.0,下载对应系统位数(32/64位)的安装包重新安装
  • 以管理员权限打开命令提示符,执行命令注册组件:
    regsvr32 "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlncli11.dll"
    
    32位系统路径替换为:C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\sqlncli11.dll

2. 校验连接字符串细节

即使连接验证显示正常,执行时可能因字符串参数失效:

  • 打开连接管理器属性,查看ConnectionString值,确认服务器名、实例名、数据库名完全正确;同服务器连接可尝试用localhost、.或服务器IP替代原名称
  • 若用SQL身份验证,确认用户名、密码无拼写错误;若用Windows身份验证,确认运行SSIS包的账户拥有目标数据库的访问权限

3. 检查SQL Server服务与网络配置

  • 确认目标SQL Server实例服务处于运行状态
  • 打开SQL Server配置管理器:
    • 启用目标实例的TCP/IP协议
    • 检查TCP/IP属性中,IP地址标签下的TCP端口是否为默认1433(自定义端口需在连接字符串中添加Port=XXX)
    • 确认SQL Server服务账户具备网络访问权限

4. 调整SSIS运行位数

SSIS默认可能以32位模式运行,与64位环境存在兼容性问题:

  • 在SSDT中右键项目→属性→调试,将Run64BitRuntime设为True
  • 若通过SQL Server代理运行,在作业步骤的执行选项中勾选“使用32位运行时”(根据实际环境调整)

5. 重置连接管理器

删除现有连接管理器后重新创建:

  • 右键删除“STLEDGSQL01.MES_DEV”连接管理器
  • 新建OLE DB连接,重新配置服务器、数据库和身份验证方式,测试连接成功后关联到数据源和目标组件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:35:22