最近已经收到多起关于Oracleg启动两个监听进程的故障报告
故障发生时数据库无法通过监听正常建立连接检查时会发现系统上存在两个监听器进程其中一个是另外一个的子进程
一位朋友在我的留言板上给出了以下输出
local:/ #ps ef | grep tnslsnr oracle Apr : /u/app/oracle/product//bin/tnslsnr listener inherit
oracle :: : /u/app/oracle/product//bin/tnslsnr listener inherit
有朋友在RAC环境下也遇到了类似的问题在ITPUB上也有一个相关问题的讨论
在Metalink上可以找到相关问题的很多解释这个问题被最终确认为一个BUGBUG号为
Oracle称在较大压力下监听进程可能出现间歇性停止服务此时Oracle会spaw出另外一个监听进程进而导致两个监听进程互相影响的故障
在非RAC环境下可以通过在listenerora中设置参数
SUBSCRIBE_FOR_NODE_DOWN_EVENT_
=OFF
来暂时回避这个BUG
同时Oracle已经推出了相关Patch用来修正这个问题
The End