Oracle数据库连接hang,出现了两个listener,一个是另一个子进程
处理过程如下
1,出现问题时,用户连接hang住,出现两个listener,现有连接无问题
$ ps -ef|grep lsnr
oracle 26327 1 0 12月 24 ? 5:34 /oracle/product/10.2.0.1/bin/tnslsnr LISTENER -inherit
oracle 16352 12931 1 10:44:26 pts/4 0:00 grep lsnr
oracle 28413 26327 0 21:40:46 ? 0:00 /oracle/product/10.2.0.1/bin/tnslsnr LISTENER -inherit
patrol 29576 29575 0 21:45:19 ? 0:00 /oracle/product/10.2.0.1/bin/lsnrctl stat LISTENER
2,为快速恢复问题,杀掉进程
$ kill -9 26327
3,重启
$ lsnrctl start
LSNRCTL for HPUX: Version 10.2.0.1.0 - Production on 26-DEC-2012 10:44:54
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /oracle/product/10.2.0.1/bin/tnslsnr: please wait...
TNSLSNR for HPUX: Version 10.2.0.1.0 - Production
System parameter file is /oracle/product/10.2.0.1/network/admin/listener.ora
Log messages written to /oracle/product/10.2.0.1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rps02)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rps02)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for HPUX: Version 10.2.0.1.0 - Production
Start Date 26-DEC-2012 10:44:56
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /oracle/product/10.2.0.1/network/admin/listener.ora
Listener Log File /oracle/product/10.2.0.1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rps02)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
4,恢复正常,只有一个listener
$
$ ps -ef|grep lsnr
oracle 16503 1 0 10:44:56 ? 0:00 /oracle/product/10.2.0.1/bin/tnslsnr LISTENER -inherit
oracle 17637 12931 1 10:48:17 pts/4 0:00 grep lsnr
$
5,后续查询metalink,基本确定为bug,需打oracle Patch 4518443
详见文件Intermittent TNS Listener Hang, New Child Listener Process Forked [ID 340091.1]
除了打补丁,oracle给出的其它解决方案是
a,修改listener.ora文件
SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF
b,移动ons.config文件
cd $ORACLE_HOME/opmn/conf
mv ons.config ons.config.ori