Listener Issues ORA-12505/TNS-12505 or ORA-12514/TNS-12514

This post details how to resolve listener connection issues when DB & listener are started but still connect fails with following errors:-

ORA-12505 TNS:listener could not resolve SID given in connect descriptor
TNS-12505 TNS:listener could not resolve SID given in connect descriptor

ORA-12514 TNS:listener could not resolve SERVICE_NAME given in connect descriptor
TNS-12514 TNS:listener could not resolve SERVICE_NAME given in connect descriptor

The issue is confirmed when you issue “lsnrctl services ” and notice “listener supports no services” .

Following is the output of “lsnrctl status ”

LSNRCTL for Linux: Version - Production on 26-JUN-2016 18:42:30

Copyright (c) 1991, 2004, Oracle.  All rights reserved.

Alias                     listener
Version                   TNSLSNR for Linux: Version - Production
Start Date                26-JUN-2016 17:36:52
Uptime                    0 days 1 hr. 5 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/app/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/app/dbhome_1/network/log/listener.log
Listening Endpoints Summary...
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

As you can notice from the above output that the listener is binding to a specific IP instead of all the interfaces.

Listening Endpoints Summary...

This suggests that the listener is configured on a hostname which does not match the system’s hostname so it would bind to the associated IP.


Now what will happen in this case, PMON would try to register its service against the listener using the hostname, which will fail since the hostname would not match the system’s hostname. And in this case if no static entries exist for this service in listener.ora, the listener would not be registered with any service and hence the “listener supports no services” message, thus any new client connection would fail because the SERVICE_NAME or SID specified in the tns would not be registered with the listener.


Try one or more of the solutions mentioned below:-

1) Reconfigure listener to bind on system hostname:-

First check the /etc/hosts file for system hostname and update the listener.ora with the correct hostname. Then restart the listener and issue an “ALTER SYSTEM REGISTER” via SQL prompt.

The service should have been registered by now, check the same with lsnrctl services command.

2) Reconfigure the database instance local_listener parameter:-

Check that you have a TNS name which points to the listener (same hostname and port) and use it as a value for the local_listener database parameter, by issuing the following DDL:-

ALTER SYSTEM SET local_listener="(address=(protocol=tcp)(host=<your_host>)(port=<your_port>))" scope=both sid='<INSTANCE_NAME>';

3) Create a static service registration:-

Edit the listener.ora to configure a static registration entry in the listener which will point to the database.

    (SID_DESC =
      (SID_NAME = <instance_name>)
      (ORACLE_HOME = </path/to/oracle/home>)

And then finally reload the listener by issuing “lsnrctl reload ” in order for the changes to take effect.

By then you should have resolved the issue, as in my experience following one or more of the above solutions have resolved the issue but in case it didn’t please comment below and I’ll try to work with you in resolving the issue.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s