ORA-12154: TNS:could not resolve the connect identifier specified Error and Solution

Posted on in Categories , , , , , last updated May 1, 2008

Q. My Oracle XE installation was working fine, but today I’m getting an error – which read as follows under Ubuntu Linux :

ORA-12154: TNS:could not resolve the connect identifier specified

How do I fix this problem without reinstalling Oracle?

A. Try following solutions:

Make sure DNS / host name resolution working fine

$ host oracle-server-ip
$ host oracle-server-hostname

Make sure /etc/resolv.conf and /etc/hosts and /etc/host.conf configured properly.

Make sure tnsnames.ora is configured properly:

Type the following command to login as oracle / dba user:
$ su - oracle
$ cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/
$ vi tnsnames.ora

Make sure hostname / IP is correctly defined and resolving perfectly:

# tnsnames.ora Network Configuration File:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = vivek-desktop)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

Make sure the host, port and service name specified are correct in listener.ora and above file:
$ cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/
$ vi listener.ora

My sample working file:

# listener.ora Network Configuration File:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = vivek-desktop)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

Make sure firewall is not blocking TCP ports:
$ sudo iptables -L -n
If everything else failed try to trace problem by running strace:
$ su - oracle
$ strace -o /tmp/debug.sqlplus sqlplus user/password

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

12 comment

  1. Dear sir,

    Thank you for send the every time latest infomation on linux based and also do me some help to me.
    How do i install Oracle10g on RedHat Enterprises Linux 5 kindly send me the same with step by step.

    Thanks & Regards,
    Venu R,
    IT Dept,
    Avantha Technologies Ltd
    Secunderabad.

  2. i have configure SDU and TDU configuration in tnsnames.ora and listener.ora
    file to increase the network performance , but now iam getting error code 12154 while connecting through sqlplus…………. my all syntax for the above files are correct there is no any spell mistake.

    please giude me.

    manoj kulkarni
    microstop infotech.
    india.

  3. Hi,
    Thank you for putting all the steps together for a quick check.But,
    I am currently facing a situation with the ORA-12154 error.
    I have checked all the things that you have listed up above but unable to find any resolution.
    My database mounted perfectly
    TNSPING is good
    I have also checked the TNSNAMES.ora and it is fine
    Listener configuration is good
    /etc/hosts, /etc/resolv.conf .. etc. everything is good but I am unable to connect to my database I am unable to understand what is the issue. Can you please help me in this.

Leave a Comment