gpt4 book ai didi

sql-server-2008 - 如何确定通信链路故障 TCP 提供程序 : The specified network name is no longer available? 的根本原因

转载 作者:行者123 更新时间:2023-12-03 10:43:54 26 4
gpt4 key购买 nike

这是我修改这个问题的最新努力。但这一次,我试图遵循 Oded 在他的文章 Getting good answers on StackOverflow 中给出的好建议。 .

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

Communication link failure

TCP Provider: The specified network name is no longer available



有时,我在运行一组 SSIS 包时会看到此错误。当从以下位置运行一对多包时,可能会发生此错误:
  • SQL Server 代理作业
  • 批处理文件
  • 来自 BIDS 的 Debug模式

  • 我看到的完整错误消息如下:

    SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Communication link failure". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "TCP Provider: The specified network name is no longer available. ".

    SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Protocol error in TDS stream". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Communication link failure". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "TCP Provider: An existing connection was forcibly closed by the remote host."



    这是我如何设计 ETL 过程的概述:
  • 两台服务器
  • 都是虚拟机
  • SSIS 包在应用程序服务器上运行
  • SQL Server 数据库位于数据库服务器


  • 我使用 OLE DB 连接管理器从应用程序服务器上的 SSIS 包连接到数据库服务器上的 SQL Server 数据库。

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

    这样做的主要原因是 ETL 与一组在数据库服务器上找不到且驱动器无法访问的工具集成在一起。这些工具包括 Apex Data Loader for Salesforce 和 pgAdmin III。

    到目前为止,我无法始终如一地重现此错误。然而,这是我观察到的:
  • 正常工作时间故障发生频率更高
  • 非工作时间发生故障的频率较低

  • 在星期五早上大约两个小时的时间里,我能够成功地在特定包上重现错误。

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

    如果禁用了大数据流之前的子包调用,则在同一大数据流期间不会发生该错误。

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

    感觉可能是超出了资源限制?

    也许是连接限制?

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

    下面列出了有关两台服务器的技术细节:

    SQL Server and Database Server info:
    Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)

    SSIS info:
    Microsoft Visual Studio 2008 Version 9.0.30729.1 SP Microsoft .NET Framework Version 3.5 SP1

    Application Server info:
    OS name: Microsoft Windows Server 2008 R2 Standard Version: 6.1.7601 Service Pack 1 Build 7601



    我在网上研究了错误消息并找到了这些,但在继续之前真的很想获得专家的见解:
  • How to Disable TCP Chimney, TCPIP Offload Engine (TOE) or TCP Segmentation Offload (TSO).
  • Using Netsh Commands to Enable or Disable TCP Chimney Offload

  • 任何帮助表示赞赏。

    谢谢

    更新:

    进一步测试表明,这不是“SSIS 问题”,因为在使用 SQL Server Management Studio 时会以相同的速度出现相同的错误。查询的复杂性不会使错误发生的可能性更大或更小。为了解决这个问题,我们尝试了一个修复(如下):
  • #1 How to Disable TCP Chimney, TCPIP Offload Engine (TOE) or TCP Segmentation Offload (TSO).

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

    那么从这里去哪里呢?老实说,我不确定。一个看似不错的选择仍然存在:
  • 应用程序服务器和数据库服务器 SQL Server 安装不完全匹配
  • 应用程序服务器 = SQL Server 2008 (SP1) - 10.0.2531.0 (X64)
  • 数据库服务器 = SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)

  • 计划是升级应用程序服务器上的 SQL Server 安装。这是一种打击和希望,但在这一点上,这似乎是最好的选择。我脑子里的东西告诉我,这可以通过修复硬件问题来解决(我的意思是修理或更换),并且硬件和软件配置可能无法解决这个问题。

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

    最佳答案

    应用服务器端有AV软件吗?如果是,请尝试禁用 AV - 有时 AV 会阻止 TCP/IP 流量。通过在此处禁用 AV 解决了“指定的网络名称不再可用”的问题:
    https://community.spiceworks.com/topic/239423-the-specified-network-name-is-no-longer-available-while-writing-to-shared-dir

    关于sql-server-2008 - 如何确定通信链路故障 TCP 提供程序 : The specified network name is no longer available? 的根本原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675337/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com