我需要找出如何确定以下错误的根本原因:
通信链路失败 TCP提供程序:指定的网络名不再可用
在运行一组SSIS包时,我偶尔会看到此错误。当从以下选项之一运行一对多个包时,可能会发生此错误:
SQL Server代理作业 批处理文件 从BIDS调试模式
我看到的完整错误消息如下:
SSIS错误代码DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80004005。 可用的OLE DB记录。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80004005 描述:"通信链接失败"。 可用的OLE DB记录。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80004005 描述:"TCP提供程序:指定的网络名称不再可用。"。
SSIS错误代码DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80004005。 可用的OLE DB记录。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80004005 描述:"TDS流中的协议错误"。 可用的OLE DB记录。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80004005 描述:"通信链接失败"。 可用的OLE DB记录。来源:"Microsoft SQL Server Native Client 10.0" Hresult:0x80004005 描述:"TCP提供程序:现有连接被远程主机强制关闭。"。
这是我设计ETL过程的概述:
- 两个服务器
- 都是虚拟机
- SSIS包在应用服务器上运行
- SQL Server数据库位于数据库服务器上
这些包作为文件系统部署在应用服务器上运行,而不是作为数据库部署在数据库服务器上运行。
主要原因是ETL与一组工具集成在一起,这些工具不在数据库服务器上并且驱动程序无法访问。这些工具包括Salesforce的Apex Data Loader和pgAdmin III。
到目前为止,我无法始终重现此错误。但是,以下是我观察到的情况:
- 故障在正常营业时间更频繁发生
- 故障在非营业时间更少发生
如果启用了一个大数据流之前的子包调用,则会在大数据流期间发生错误。
如果在前面的子包调用被禁用时,同一大数据流中未发生错误。
所涉及的子包会回调数据库以检索少量信息,用于电子邮件正文,然后发送电子邮件。
感觉可能超过了某些资源限制?
也许是连接限制?
我想知道应该使用哪些工具来确定错误的根本原因。
有关涉及的两个服务器的技术细节如下:
SQL Server和数据库服务器信息:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 版权所有 (c) Microsoft Corporation 企业版 (64位) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)SSIS信息:
Microsoft Visual Studio 2008版本9.0.30729.1 SP Microsoft .NET Framework版本3.5 SP1应用程序服务器信息:
操作系统名称:Microsoft Windows Server 2008 R2 Standard 版本号:6.1.7601 Service Pack 1 Build 7601
我在网上研究了错误信息,并找到了这些,但在继续之前,我真的想得到专家的见解:
- 如何禁用TCP Chimney、TCPIP Offload Engine(TOE)或TCP Segmentation Offload(TSO)。
- 使用Netsh命令启用或禁用TCP Chimney Offload。
非常感谢您的帮助。
谢谢。
更新:
进一步测试表明,这不是“SSIS的事情”,因为在使用SQL Server Management Studio时也会看到相同的错误率。查询的复杂性并不会使错误更有可能发生。为了解决问题,我们尝试了一个修复方法(如下所示):
这是我们的第一次尝试。应用服务器和数据库服务器上的TCP Chimney现已禁用。测试显示,相同的错误以相同的速率发生。那么接下来该怎么办呢?老实说我不确定。似乎还有一个好的选择:
- 应用服务器和数据库服务器SQL Server安装版本不完全匹配 - 应用服务器 = SQL Server 2008(SP1)- 10.0.2531.0(X64) - 数据库服务器 = SQL Server 2008 R2(SP1)- 10.50.2500.0(X64)
计划升级应用服务器上的SQL Server安装。这有点像碰运气,但此时此刻这似乎是最好的选择。我的大脑中有些东西告诉我,这可能通过修复硬件问题(我的意思是维修或更换)来解决,并且硬件和软件配置可能无法做任何事情。
然而,我仍然不确定如何确定根本原因。我仍然在想我应该使用哪些工具来诊断根本原因。