【问题标题】:SQL Server 2016 linked Oracle Server - Suddenly stopped workingSQL Server 2016 链接的 Oracle Server - 突然停止工作
【发布时间】:2018-07-10 15:21:37
【问题描述】:

重新启动我的 Windows Server 2016 Standard (SQL Server 2016) 后,我运行此查询的 SSIS 进程:

select * from openquery(HRMPROD, 'SELECT QUERY HERE' )

开始失败并出现此错误:

如果我尝试在 SSMS 中运行查询,我会遇到同样的错误。我在我的测试实例上设置了相同的链接服务器,当我在那里运行时查询成功。我已经比较了两个实例上的链接服务器创建脚本,它是相同的。

知道我应该在哪里查找导致一台服务器而不是另一台服务器上的连接问题的原因吗?

谢谢。

【问题讨论】:

  • 嗯,也许与防火墙有关?闻起来像网络问题,如 DNS。

标签: oracle sql-server-2016 linked-server tns


【解决方案1】:

说答案在 Oracle 一方,就像在对面指手画脚一样。让我们在这里解决问题。

有一个从 SSIS 使用的连接字符串(您也在 SSMS 中使用)该连接字符串包含三个要连接的主要组件,如果其中任何一个不正确,都会导致 12154 错误:

  • 主机
  • 实例名称(不同于 Sql Server 上的实例,认为数据库名称)
  • 端口

端口很可能没有改变,数据库名称也没有改变,但是主机......不,没有改变,但用于连接的 DNS 服务器很可能有!我会 ping 主机并查看从 SSIS 和您正在使用的 SSMS 主机返回的内容。我预计它会失败。找出主机正在使用的 IP 地址并 ping - 看看它是否返回。我猜这是需要更新的更改,或者您的网络人员需要修复 DNS 配置/服务器问题。

希望这会有所帮助! 凯琳

【讨论】:

    【解决方案2】:

    由于您从 TNS 侦听器获得响应,因此问题出在 Oracle 方面。请参阅Architecture of Oracle Network Services 了解 Oracle 网络如何处理事情的概述。请记住,根据您已到达 TNS 侦听器的错误消息,因此您只需要检查 TNS 和 Oracle 数据库之间的内容...换句话说,您的网络和 SQL Server 设置都很好,或者您不会能够得到这个错误信息。

    【讨论】:

      【解决方案3】:

      我同意上述问题可能与网络有关。我遇到过几次,我们可以在其中设置所有内容,但是防火墙阻止了两台服务器之间的通信。

      在新服务器上打开 powershell 并对目标运行 tracert 以查看跃点并确定是否通过网络连接。

      如果是,则在特定端口上运行 test-netconnect,以查看该端口是否已从防火墙打开。

      干杯!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多