问题
I have been trying to connect to Oracle 12c remotely by using Oracle SQL developer. It shows the below error during connecting to the server :
Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection
I do can connect to oracle database on the server, but the problem is regarding to connect to this server (database) remotely
The content of my listener.ora is :
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))
)
)
回答1:
Your listener.ora
says that is only listening on localhost
(127.0.0.1), so nothing will be able to connect from anywhere except the server; there is nothing listening on port 1521 on the server's external IP address. You can verify that with lsnrctl status
and netstat -ano | find "1521"
.
You need to modify the listener.ora
to listen on your server's hostname, or if that isn't resolvable to the correct IP, the external IP address itself - the 'valid IP address' you're trying to connect to from SQL Developer:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521))
)
)
You may also need to check that your database is able to register successfully. I'd verify if it is included in lsnctrl services
before and after you make that change and restart the listener. If it doesn't appear after the restart, and alter system register
doesn't make it appear, then you might need to change the local_listener
database parameter to tell it the address and port it should register against. That's a separate issue really but could follow on from this change; there's an example here which might help if it does.
来源:https://stackoverflow.com/questions/22892999/connecting-to-oracle-12c-using-oracle-sql-developer-remote