Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何确定TCP提供程序通信链路故障的根本原因:指定的网络名称不再可用?_Sql Server 2008_Networking_Ssis_Windows Server 2008_Virtual Machine - Fatal编程技术网

Sql server 2008 如何确定TCP提供程序通信链路故障的根本原因:指定的网络名称不再可用?

Sql server 2008 如何确定TCP提供程序通信链路故障的根本原因:指定的网络名称不再可用?,sql-server-2008,networking,ssis,windows-server-2008,virtual-machine,Sql Server 2008,Networking,Ssis,Windows Server 2008,Virtual Machine,下面是我最近修改这个问题的努力。但这一次,我试图遵循奥德在他的文章中给出的忠告 我需要了解如何确定以下错误的根本原因: 通信链路故障 TCP提供程序:指定的网络名称不再可用 在运行一组SSIS包时,我有时会看到这个错误。当从以下位置运行一到多个包时,可能会发生此错误: SQL Server代理作业 批处理文件 在调试模式下从投标 我看到的完整错误消息如下: SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Mi

下面是我最近修改这个问题的努力。但这一次,我试图遵循奥德在他的文章中给出的忠告

我需要了解如何确定以下错误的根本原因:

通信链路故障

TCP提供程序:指定的网络名称不再可用

在运行一组SSIS包时,我有时会看到这个错误。当从以下位置运行一到多个包时,可能会发生此错误:

  • SQL Server代理作业
  • 批处理文件
  • 在调试模式下从投标
  • 我看到的完整错误消息如下:

    SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80004005说明:“通信链路故障”。 OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80004005说明:“TCP提供程序:指定的网络名称不再可用。 “

    SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80004005说明:“TDS流中存在协议错误”。 OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80004005说明:“通信链路故障”。 OLE DB记录可用。来源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80004005说明:“TCP提供程序:远程主机强制关闭了现有连接。”

    这是我如何设计ETL流程的概述:

    • 两台服务器
    • 两者都是虚拟机
    • SSIS包在应用程序服务器上运行
    • SQL Server数据库位于数据库服务器上
    我使用OLE DB连接管理器从应用程序服务器上的SSIS包连接到数据库服务器上的SQL server数据库

    这些包在应用程序服务器上作为文件系统部署运行,而不是在数据库服务器上作为数据库部署运行

    这样做的主要原因是ETL集成了一组在上找不到的工具和数据库服务器无法访问的驱动器。这些工具包括用于Salesforce的Apex数据加载器和pgAdmin III

    到目前为止,我无法始终如一地重现这个错误。然而,这是我观察到的:

    • 故障在正常工作时间更频繁地发生
    • 故障在非工作时间发生的频率较低
    在一个星期五的早上,我成功地在一个特定的包上重现了大约两个小时的错误

    如果启用了大数据流之前的子包调用,则在大数据流期间发生错误

    如果在大数据流之前的子包调用被禁用,则在相同的大数据流期间不会发生此错误

    有问题的子包将调用数据库以检索电子邮件正文中使用的少量信息,然后发送电子邮件

    感觉可能超出了资源限制

    可能是连接限制

    我想知道我应该使用什么工具来尝试和确定错误的根本原因

    下面列出了有关这两台服务器的技术详细信息:

    SQL Server和数据库服务器信息:
    Microsoft SQL Server 2008 R2(SP1)-10.50.2500.0(X64)2011年6月17日00:54:03版权所有(c)Windows NT 6.1上的Microsoft Corporation企业版(64位)(构建7601:Service Pack 1)(虚拟机监控程序)

    SSIS信息:
    Microsoft Visual Studio 2008版本9.0.30729.1 SP Microsoft.NET Framework版本3.5 SP1

    应用服务器信息:
    操作系统名称:Microsoft Windows Server 2008 R2标准 版本:6.1.7601 Service Pack 1 Build 7601

    我已经在网上研究了错误消息,并发现了这些错误消息,但在继续之前,我非常希望获得专家的见解:

    感谢您的帮助

    谢谢

    更新:

    进一步的测试表明,这不是“SSIS问题”,因为在使用SQLServerManagementStudio时,同样的错误以同样的速度出现。查询的复杂性并不会使出错的可能性增加或减少。为了解决此问题,我们尝试了一种修复方法(如下所示):

    这是我们第一次尝试。TCP烟囱现在在应用程序服务器和数据库服务器上被禁用。测试表明,相同的错误以相同的速率发生

    那么接下来该怎么办呢?老实说,我不确定。一个看似不错的选择仍然存在:

    • 应用程序服务器和数据库服务器SQL Server安装不完全匹配
    • 应用服务器=SQL Server 2008(SP1)-10.0.2531.0(X64)
    • 数据库服务器=SQL Server 2008 R2(SP1)-10.50.2500.0(X64)
    计划是升级应用服务器上的SQL Server安装。这是一种成功和希望,但在这一点上,这似乎是最好的选择。我大脑中的某些东西告诉我,这可能通过修复硬件问题(我指的是修复或更换)来解决,而硬件和软件配置可能对此无能为力

    然而,我仍然不确定如何着手确定根本原因。我仍然想知道应该使用什么工具来诊断根本原因

  • 首先,您是否尝试删除nic上的大型发送卸载设置
  • 第二点,如果你能复制t,你能运行wireshark来捕获数据包吗