今天重启RAC数据库一个节点的监听时出现如下问题:
$ lsnrctl status
LSNRCTL for HPUX: Version 10.2.0.5.0 - Production on 23-JUN-2011 09:45:01
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_ORADB-1
Version TNSLSNR for HPUX: Version 10.2.0.5.0 - Production
Start Date 23-JUN-2011 09:32:58
Uptime 0 days 0 hr. 12 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/product/10.2.0/db_tmp/network/admin/listener.ora
Listener Log File /oracle/product/10.2.0/db_tmp/network/log/listener_oradb-1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip1)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
检查监听的日志发现如下信息,应该是监听的进程没有杀死
23-JUN-2011 09:11:31 * ping * 0
WARNING: Subscription for node down event still pending
23-JUN-2011 09:11:32 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=oradb-1)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=oradb-1-vip)(PORT=1521)))(VERSION=169870592)) * status * 0
23-JUN-2011 09:11:44 * (CONNECT_DATA=(SID=oradb1)(CID=(PROGRAM=perl@oradb-1)(HOST=oradb-1)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=ip3)(PORT=57200)) * establish * oradb1 * 0
通过如下命令查看到有两个监听进程
$ ps -ef |grep tnslsnr
oracle 19338 1 0 17:10:21 ? 0:22 /oracle/product/10.2.0/db_tmp/bin/tnslsnr LISTENER -inherit
oracle 8741 1 0 09:32:58 ? 0:00 /oracle/product/10.2.0/db_tmp/bin/tnslsnr LISTENER_ORADB-1 -inherit
oracle 14667 4756 0 09:47:42 pts/0 0:00 grep tnslsnr
通过kill 挂起的进程可解决此问题
$ kill -9 19338
$ ps -ef |grep tnslsnr
oracle 14918 4756 1 09:48:18 pts/0 0:00 grep tnslsnr
oracle 8741 1 0 09:32:58 ? 0:00 /oracle/product/10.2.0/db_tmp/bin/tnslsnr LISTENER_ORADB-1 -inherit
$ lsnrctl status
LSNRCTL for HPUX: Version 10.2.0.5.0 - Production on 23-JUN-2011 09:48:29
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_ORADB-1
Version TNSLSNR for HPUX: Version 10.2.0.5.0 - Production
Start Date 23-JUN-2011 09:32:58
Uptime 0 days 0 hr. 15 min. 31 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/product/10.2.0/db_tmp/network/admin/listener.ora
Listener Log File /oracle/product/10.2.0/db_tmp/network/log/listener_oradb-1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip1)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "oradb" has 1 instance(s).
Instance "oradb2", status READY, has 1 handler(s) for this service...
Service "oradb_XPT" has 1 instance(s).
Instance "oradb2", status READY, has 1 handler(s) for this service...
The command completed successfully