Logo Background

» Error & Solution

  • ORA-12154: TNS Could Not Resolve Service Name
    By on June 23, 2010 | No Comments

    Looking on how to solve ORA-12154: TNS could not resolve service name? The ORA-12154 is a very common error and it’s related to the tnsnames.ora file or listener configuration.

    Oracle first checks to see if $TNS_ADMIN is set and looks in the directory the environment variable is pointing to before it checks $ORACLE_HOME/network/admin.

    Verify the database IP address and the SID entry is correct in the tnsnames.ora in order to solve the issue.

    You can use tnsping command as an alternative to confirm your database SID is reachable.

    $ tnsping database_SID

    More details about ORA-12154: TNS could not resolve service name.

    Cause: A connection to a database or other service was requested using a connect identifier, and the connect identifier specified could not be resolved into a connect descriptor using one of the naming methods configured. For example, if the type of connect identifier used was a net service name then the net service name could not be found in a naming method repository, or the repository could not be located or reached.

    Action: If you are using local naming (TNSNAMES.ORA file):

    – Make sure that “TNSNAMES” is listed as one of the values of the NAMES.DIRECTORY_PATH parameter in the Oracle Net profile (SQLNET.ORA)

    – Verify that a TNSNAMES.ORA file exists and is in the proper directory and is accessible.

    – Check that the net service name used as the connect identifier exists in the TNSNAMES.ORA file.

    – Make sure there are no syntax errors anywhere in the TNSNAMES.ORA file. Look for unmatched parentheses or stray characters. Errors in a TNSNAMES.ORA file may make it unusable.

    – Verify that “LDAP” is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

    – Verify that the LDAP directory server is up and that it is accessible.

    – Verify that the net service name or database name used as the connect identifier is configured in the directory.

    – Verify that the default context being used is correct by specifying a fully qualified net service name or a full LDAP DN as the connect identifier

    If you are using easy connect naming:

    – Verify that “EZCONNECT” is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

    – Make sure the host, port and service name specified are correct.

    – Try enclosing the connect identifier in quote marks. See the Oracle Net Services Administrators Guide or the Oracle operating system specific guide for more information on naming.