我有一个SSIS包,用于每周将表数据从测试服务器传输到生产服务器。 总项目数为 41712958。 几周以来,这个包抛出了以下错误:
[OLE DB 源 [39]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。一个OLE 发生数据库错误。错误代码:0x80004005。 OLE DB 记录是 可用的。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“TDS 流中的协议错误”。一个 OLE DB 记录可用。资料来源:“Microsoft SQL Server Native 客户端 11.0" Hresult: 0x80004005 描述: "TDS 中的协议错误 流”。OLE DB 记录可用。来源:“Microsoft SQL Server 本机客户端 11.0" Hresult: 0x80004005 描述: "通信 链接失败”。OLE DB 记录可用。来源:“Microsoft SQL 服务器本机客户端 11.0" Hresult: 0x80004005 描述: "TCP 提供商:连接尝试失败,因为连接方这样做了 一段时间后未正确响应,或建立连接 失败,因为连接的主机无法响应。”。
几周前,它曾经工作正常,请帮助我应该如何解决这个问题? 服务器有:4GB RAM
为什么仍然使用 SQL Server Native Client,因为它已被弃用。尝试将 OLE DB 提供程序从
SQL Server Native Client
更改为 Microsoft OLEDB Provider for SQL Server
。
来自官方文档:
以前的 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 和 SQL Server Native Client OLE DB 提供程序 (SQLNCLI) 仍然已弃用,不建议在新的开发工作中使用。
我知道它很旧,但是在源上的 SSIS 中设置 CommandTimeout = 0 帮助我解决了类似的错误。