周末业务电话说数据库连接等待,连不进去
登录发现库正常但监听卡死
监听日志大量报错如下:
WARNING: Subscription for node down event still pending 12-MAR-2017 10:44:01 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=crfdb1)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * status * 0 12-MAR-2017 10:44:06 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.195.33.55)(PORT=28762)) * establish * orcl * 0 12-MAR-2017 10:44:51 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.198.20.11)(PORT=27225)) * establish * orcl * 0 12-MAR-2017 10:44:52 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.198.20.23)(PORT=10164)) * establish * orcl * 0 WARNING: Subscription for node down event still pending
status及stop start,连接全是卡死状态
手工删除进程:
[oracle@crfdb1 ~]$ ps -ef |grep tns oracle 4347 1 0 2016 ? 01:37:38 /opt/oracle/product/10.2/bin/tnslsnr LISTENER -inherit oracle 8254 6842 0 16:00 pts/10 00:00:00 grep tns oracle 29873 4347 0 13:13 ? 00:00:00 /opt/oracle/product/10.2/bin/tnslsnr LISTENER -inherit [oracle@crfdb1 ~]$
[oracle@crfdb1 ~]$ kill -9 4347
[oracle@crfdb1 ~]$ kill -9 29873 [oracle@crfdb1 ~]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-MAR-2017 16:02:22 Copyright (c) 1991, 2005, 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=crfdb1)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused [oracle@crfdb1 ~]$
再启动监听:
[oracle@crfdb1 ~]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-MAR-2017 16:02:29 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /opt/oracle/product/10.2/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /opt/oracle/product/10.2/network/admin/listener.ora Log messages written to /opt/oracle/product/10.2/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=crfdb1)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 12-MAR-2017 16:02:31 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/10.2/network/admin/listener.ora Listener Log File /opt/oracle/product/10.2/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=crfdb1)(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 [oracle@crfdb1 ~]$ [oracle@crfdb1 ~]$ [oracle@crfdb1 ~]$
如果监听问题未得到解决,参考如下:
'WARNING: Subscription for node down event still pending' in Listener Log (文档 ID 372959.1)转到底部
In this Document
Symptoms Changes Cause Solution ReferencesYou are receiving the following warning messages in the listener log file constantly: 'WARNING: Subscription for node down event still pending'
This may be a new installation or a recent upgrade to 10g or newer.
These messages are related to the Oracle TNS Listener's default subscription to the Oracle Notification Service (ONS). In a non-RAC environment it is recommended to disable this subscription. This feature was introduced in Oracle 10g.
Set the following parameter in the listener.ora: SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF Where <listener_name> should be replaced with the actual listener name configured in the LISTENER.ORA file.
SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name> parameter is to be placed by itself on an empty line.
It will be necessary to restart or reload the listener following the addition of this parameter.
This will prevent the messages from being written to the log file and may also prevent the TNS Listener from hanging periodically. See (10g only) NOTE 340091.1 Intermittent TNS Listener Hang, New Child Listener Process Forked
Please Note: Setting SUBSCRIBE_FOR_NODE_DOWN_<listener_name> to OFF disables a necessary RAC functionality. The above workaround is recommended only for non-RAC environments. The issue may be present in all 10g and newer installations.
Note: The use of this undocumented parameter may cause problems with the use of the Net Manager (NetMgr) configuration utility. See Note 437598.1 NetMGR May Error When Listener.ora File Contains:SUBSCRIBE_FOR_NODE_DOWN_EVENT