ORA-12541: TNS: SSIS 中没有侦听器

ORA-12541: TNS: no listener in SSIS

我们在 SSIS 包中有 oracle oledb 连接,这些连接在 windows 服务器 2008 上运行良好。

我们将它们移动到 windows 服务器 2012 并安装了所需的软件。我们安装了oracle客户端(oraoledb驱动),将tnsnames.ora、ldap.ora和sqlnet.ora移动到%Oracle_Home%\Network\admin路径,添加%Oracle_Home%%Oracle_Home%\bin 到路径变量。

但在服务器 2012 上,oracle 连接出现此错误 ORA-12541:TNS:无侦听器。在服务器 2008 上,相同的 oracle 连接工作正常。

在互联网上看了这么多,但找到了这些解决方案:

  1. 勾选tnsnames.ora
  2. 检查侦听器是 运行
  3. 检查路径变量是否包含 oracle home,oracle_home\bin

我没有发现 tnsnames.ora 有问题,因为两个 window 服务器上都存在相同的文件。还设置了正确的路径变量。侦听器也是 运行(因为服务器 2008 上的 SSIS 正在连接)。而且我能够从两台机器上 ping oracle 数据库服务器。

任何人都可以提出我们可以尝试的任何建议。

在这里放一个正式的答案。

SSIS 的基本故障排除步骤:

  1. 使用数据库本机工具检查连接
    • 在这种情况下,Oracle 是 SQLPLUS.EXE
    • 如果您遇到本机工具问题,则这不是 SSIS 问题
  2. 检查您是否可以使用 PING <hostname> 解析主机。
    • 如果不行试试PING <ip address>
  3. 如果 ping 正常,请使用 TELNET <host> <port> 检查端口
    • 如果这不起作用,要么服务没有监听,要么您需要让您的网络人员打开端口

这适用于任何网络服务

  • SQL 服务器(默认端口 1433)
  • Web 服务器(未加密通信的默认端口 80)