Case of Oracle listening service startup failure and oracle listening failure
When a database is restored on the ORACLE test server, errors such as TNS-12541, TNS-12560, and TNS-00511 occur when the listening service is started, as shown below:
[Oracle @ getlnx01 admin] $ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.4.0-Production on 09-MAR-2015 09:13:29
Copyright (c) 1991,200 7, Oracle. All rights reserved.
Connecting to (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1 )))
TNS-12541: TNS: no listener
TNS-12560: TNS: protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = getlnx01.esqule.com) (PORT = 1521 )))
TNS-12541: TNS: no listener
TNS-12560: TNS: protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
[Oracle @ getlnx01 dbs] $ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.4.0-Production on 09-MAR-2015 09:20:46
Copyright (c) 1991,200 7, Oracle. All rights reserved.
Starting/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.4.0-Production
System parameter file is/u01/app/oracle/product/10.2.0/db_1/network/admin/listener. ora
Log messages written to/u01/app/oracle/product/10.2.0/db_1/network/log/listener. log
Listening on: (DESCRIPTION = (ADDRESS = (PROTOCOL = ipc) (KEY = EXTPROC1 )))
Listening on: (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = getlnx01.esqule.com) (PORT = 1521 )))
Connecting to (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1 )))
TNS-12547: TNS: lost contact
TNS-12560: TNS: protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer
Connecting to (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = getlnx01.esqule.com) (PORT = 1521 )))
TNS-12541: TNS: no listener
TNS-12560: TNS: protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Because once encountered and solved the TNS-12541 such errors, immediately check the/etc/hosts file, the results found that the IP address is wrong, the correct IP address should be 192.168.7.221, rather than careless hand mistakenly written the error 192.168.7.211
[root@getlnx01 ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 getlnx01.esqule.com getlnx01
192.168.7.211 getlnx01.esqule.com getlnx01
This Error still persists after you change to the correct IP address. After you check the official documentation Starting TNS Listener or LSNRCTL Start Yields TNS-12541, Linux Error: 111: Connection Refused (Document ID 343295.1, the cause is that the name and address of the local host are incorrect. Modify/etc/hosts and restart the listening service. The problem is solved.
[oracle@getlnx01 ~]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.7.221 getlnx01.esqule.com getlnx01
CAUSE
1. There is possibly an incorrect IP Address specified for the host in the/etc/hosts file.
For example:
192.168.101.101 prod1.us.oracle.com prod1
Whereas the actual ip address for the host "prod1.us.oracle.com" is 192.168.101.110
2. Also, the localhost reference may be incorrect or missing from the/etc/hosts file.
3. Oracle may not have read access to/etc/nsswitch. conf file.
SOLUTION
To implement the solution, please execute the following steps:
1. Correct the mapping in the/etc/hosts file by adding/correcting the IP address and/or hostname reference for the Unix/Linux Server (both long and short host names ).
For example:
# Add or edit the/etc/hosts file to include a valid entry for the Server:
192.168.101.110 prod1.us.oracle.com prod1
2. Check that the localhost loopback name and address are correct (both long and short host names ).
An example of a correct localhost entry wocould be as follows:
127.0.0.1 localhost. localdomain localhost
3. Remember to save the/etc/hosts file and then start the listener.
4. Check permissions on/etc/nsswitch. conf file to ensure group and other have read access.
-If necessary change permisions on/etc/nsswitch. conf as follows:
Chmod 644/etc/nsswitch. conf