Monday, August 19, 2013

TNS-01189: The listener could not authenticate the user

I have two Oracle servers, old and new. The plan is to swap their IP addresses to use the new Oracle. After swapped the IP addresses, the Listener was not working.
The error was:
[root@171db ~]# su - oracle
[oracle@171db ~]$ lsnrctl status

LSNRCTL for Linux: Version - Production on 31-MAY-2013 10:49:58

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

TNS-01189: The listener could not authenticate the user

Below is the explanation from the official website about this error code TNS-01189
TNS-01189: The listener could not authenticate the user
Cause: The user attempted to issue a privileged administrative command, but
could not be successfully authenticated by the listener using the local OS
authentication mechanism. This may occur due to one of the following reasons:
1. The user is running a version of LSNRCTL that is lower than the version of the
2. The user is attempting to administer the listener from a remote node.
3. The listener could not obtain the system resources needed to perform. the
4. The local network connection between the listener and LSNRCTL was
terminated unexpectedly during authentication message exchange, such as if
LSNRCTL program was suddenly aborted.
5. The communication between the listener and LSNRCTL is being intercepted by
a malicious user.
6. The software that the user is running is not following the authentication
protocol, indicating a malicious user.
Action: Make sure that administrative commands are issued using the LSNRCTL
tool that is of a version equal or greater than the version of the listener, and that
the tool and the listener are running on the same node. You can issue the
VERSION command to find out the version of the listener. If a malicious user is
suspected, use the information provided in the listener log file to determine the
source and nature of the requests. Enable listener tracing for more information. If
the error persists, contact Oracle Support Services.

Reason No.4 explained the current situation.
The solution is to check /etc/hosts. Because the IP has been swapped from to for the new Oracle server.

Here is the original file:

[root@new-oracle ~]# vi /etc/hosts   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  new-oracle

The above IP needs to be updated to After updated the file and start the Listener again, problem solved.

[oracle@new-oracle admin]$ lsnrctl start