当侦听器设置为主机 IP 地址时,与 Oracle DB 19c 的连接失败

问题描述

我是 Oracle DB 的新手,需要帮助来解决以下问题。

我正在使用 sqlplus (sql*Plus: Version 21.1.0.0.0) 连接到 Oracle DB 19c。

声明: 我能够从主机 (192.168.0.109)、在主机上运行的 VM (192.168.0.108) 以及同一 LAN 中的其他系统 (192.168.0.106 ) 当我在 listener.ora 文件中将 IP 从“localhost”更改为 0.0.0.0 时,如下所示:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

面临的问题: 当我在 listener.ora 文件中将 IP 更改为主机 IP (192.168.0.108) 时,无法从 VM (192.168.0.106) 或 LAN 内的其他系统 (192.168.0.109) 进行连接。请在下面找到修改后的 listener.ora:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.109)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

错误详情: sqlplus工具报的错误如下:

ORA-12514: TNS:listener does not currently kNow of service requested in connect descriptor

现在,让我也分享一下 tnsnames.ora 文件内容(如果需要):

  LISTENER_POLA =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

POLA =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pola)
    )
  )

更多细节:

  1. 可从包括 VM 在内的所有其他系统访问 Oracle DB 所在的主机 (192.168.0.109)
  2. telnet 192.168.0.109 1521 来自所有系统都显示已连接
  3. VM 在 Oracle Virtual Box 6.1 上运行并配置为桥接模式。
  4. Oracle DB 19c 和 VM 运行在 Windows Server 2016 之上。

查询 当listener.ora文件配置了主机系统的IP地址(sqlplus)时,我需要做什么配置才能使192.168.0.109可以从同一局域网内的任何系统连接到Oracle DB ?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)