首页 > 代码库 > TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error:

TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error:

  今天是2014-06-17,遇到一个非常奇怪的问题,可能之前测试修改监听的原因,导致监听启动后自动关闭,特此记录一下整个处理过程,
监听配置文件信息如下:

[oracle@dg1 admin]$ more listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.181)(PORT = 1521))      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))    )  )ADR_BASE_LISTENER = /u01/app/oracleSID_LIST_LISTENER=    (SID_LIST=        (SID_DESC=           (GLOBAL_DBNAME=dg1)           (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)          (SID_NAME=dg1)     )    )


启动监听之后3秒自动关闭,如下:

[oracle@dg1 admin]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-JUN-2014 22:54:06Copyright (c) 1991, 2013, Oracle.  All rights reserved.Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 11.2.0.4.0 - ProductionSystem parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.oraLog messages written to /u01/app/oracle/diag/tnslsnr/dg1/listener/alert/log.xmlListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.181)(PORT=1521)))Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.181)(PORT=1521)))STATUS of the LISTENER------------------------Alias                     LISTENERVersion                   TNSLSNR for Linux: Version 11.2.0.4.0 - ProductionStart Date                17-JUN-2014 22:54:08Uptime                    0 days 0 hr. 0 min. 0 secTrace Level               offSecurity                  ON: Local OS AuthenticationSNMP                      OFFListener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.oraListener Log File         /u01/app/oracle/diag/tnslsnr/dg1/listener/alert/log.xmlListening Endpoints Summary...  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.181)(PORT=1521)))  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Services Summary...Service "dg1" has 1 instance(s).  Instance "dg1", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully[oracle@dg1 admin]$ [oracle@dg1 admin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-JUN-2014 22:55:44Copyright (c) 1991, 2013, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.181)(PORT=1521)))TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error  TNS-00511: No listener   Linux Error: 111: Connection refusedConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error  TNS-00511: No listener   Linux Error: 111: Connection refused[oracle@dg1 admin]$ 


查看日志如下:

Started with pid=1750Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.181)(PORT=1521)))Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Listener completed notification to CRS on startTIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODEWARNING: Subscription for node down event still pending17-JUN-2014 22:50:15 * (CONNECT_DATA=http://www.mamicode.com/(CID=(PROGRAM=)(HOST=dg1)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0>


查看日志没有发现什么问题,查看一下mos:
问题原因:

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.

问题解决办法:

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 would 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

将主机配置文件/etc/hosts修改过后问题即可解决:

127.0.0.1       localhost.localdomain      localhost     dg1::1     localhost.localdomain           dg1192.168.4.181 dg1192.168.4.182 dg2


####################343295.1######################