TNS:无监听器 - 在 Ubuntu 22.04x86_64 上安装 Oracle 客户端

TNS:无监听器 - 在 Ubuntu 22.04x86_64 上安装 Oracle 客户端

我目前正在参与一个项目,我的任务是配置来自Ubuntu 22.04x86_64服务器到名为 的内部 Oracle DB 服务器myOracleDB

首先,ping myOracleDB运行正常,因此服务器可以互相看到。为了排除网络问题,我们还允许所有端口上的所有进一步连接。因此,下一步是安装oracle client。为此,我按照较旧的 Ubuntu16.04x86_64服务器上的安装进行操作,在那里我可以sqlplus User@dbConn毫无问题地运行,并且一切正常。

因此,我首先下载了

  • oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
  • oracle-instantclient19.6-devel-19.6.0.0.0-1.x86_64.rpm
  • oracle-instantclient19.6-odbc-19.6.0.0.0-1.x86_64.rpm
  • oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.x86_64.rpm

之后,我将它们转换为 Debian 软件包,sudo alien --scripts --target="x86_64"并通过成功安装sudo gdebidpkg --list现在我看到了

ii  oracle-instantcli 19.6.0.0.0-2  amd64         Oracle Instant Client Basic package
ii  oracle-instantcli 19.6.0.0.0-2  amd64         Development header files for Oracle Ins
ii  oracle-instantcli 19.6.0.0.0-2  amd64         Oracle Instant Client ODBC
ii  oracle-instantcli 19.6.0.0.0-2  amd64         Oracle Instant Client SQL*Plus package

然后我进行了如下配置:

  • cat /etc/ld.so.conf.d/oracle.conf给出/usr/lib/oracle/19.6/client64/lib/。(sudo ldconfig也在运行)
  • export TNS_ADMIN=$ORACLE_PATH/network/adminORACLE_PATH=/usr/lib/oracle/19.6/client64/lib
  • 下面$ORACLE_PATH/network/admin有一个tnsnames.ora包含

tnsnames.ora

dbConn =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =  myOracleDB)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYSN)
    )
  )

最后我导出了一些变量:export

LD_LIBRARY_PATH=/usr/lib/oracle/$ORACLE_VER/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export ORACLE_HOME=$ORACLE_PATH
export ORACLE_SID=MYSN
export PATH=$PATH:$ORACLE_HOME/bin

使用这些设置,在我的旧服务器(Ubuntu 16.04)上,连接工作正常。但是,当我sqlplus User@dbConn在当前机器上使用时,我得到了

ERROR:
ORA-12541: TNS:no listener

我可能会添加以下信息:旧的和当前的 Ubuntu 服务器在不同的子网中运行。有什么想法可能导致此问题吗?同样,两台 Ubuntu 计算机上的配置文件绝对相同。尽管如此,我也会在使用其他版本的 instantclient 时遇到相同的错误19.6(例如21.7:)。

相关内容