我一直在尝试使用Oracle SQL开发人员远程连接到Oracle 12c。它在连接服务器时显示以下错误:
Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection
我可以连接到服务器上的oracle数据库,但问题是远程连接到这个服务器(数据库)
我的listener.ora的内容是:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\ORCLNEWUSER\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:d:\app\ORCLNEWUSER\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
答案 0 :(得分:5)
您的listener.ora
表示仅在localhost
(127.0.0.1)上收听,因此除了服务器之外,任何地方都无法连接;在服务器的外部IP地址上没有侦听端口1521。您可以使用lsnrctl status
和netstat -ano | find "1521"
验证该内容。
您需要修改listener.ora
以侦听服务器的主机名,或者如果无法解析为正确的IP,则外部IP地址本身 - 有效IP地址'您正尝试从SQL Developer连接:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521))
)
)
您可能还需要检查数据库是否能够成功注册。在您进行更改并重新启动侦听器之前和之后,我验证它是否包含在lsnctrl services
中。如果在重新启动后没有显示,并且alter system register
没有显示,那么您可能需要更改local_listener
数据库参数以告诉它应该的地址和端口注册。这确实是一个单独的问题,但可以从这个变化中继续下去; there's an example here如果有的话可能会有所帮助。