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_<listener_name>=OFF
b,移動ons.config檔案
cd $ORACLE_HOME/opmn/conf
mv ons.config ons.config.ori