我一直在尝试使用Oracle SQL Developer远程连接到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)) ) )
您listener.ora说的只是监听localhost(127.0.0.1),所以除了服务器外,其他任何地方都无法连接。在服务器的外部IP地址上的端口1521上没有侦听任何内容。您可以使用lsnrctl status和进行验证netstat -ano | find "1521"。
listener.ora
localhost
lsnrctl status
netstat -ano | find "1521"
您需要修改,listener.ora以侦听服务器的主机名;如果无法解析为正确的IP,则使用外部IP地址本身-您尝试从SQL Developer连接到的“有效IP地址”:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521)) ) )
您可能还需要检查数据库是否能够成功注册。lsnctrl services在进行更改并重新启动侦听器之前和之后,我将验证它是否包含在其中。如果重新启动后它没有出现,并且alter system register没有使它出现,那么您可能需要更改local_listener数据库参数,以告诉它应向其注册的地址和端口。
lsnctrl services
alter system register
local_listener