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