ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 监听僵死的故障

监听僵死的故障

原创 Linux操作系统 作者:guyan226 时间:2009-04-21 21:52:59 0 删除 编辑

通过对日志的分析,怀疑是oracle 10.2.0.1这个版本上一个严重的BUG。 根据ORACLE官方解释,在任何操作系统版本都有此问题。

现象:
    监听器启动后,隔一段时间(长短不定),就会出现无法连接: 若是用10201版本的SQLPLUS,则会出现 NO LISTENER。9207 版本

的SQLPLUS,则会出现:没反应,HANG住。

原因:
    10201 版本上的一个BUG:4518443。其会自动创建一个子监听器,当出现此情况时,监听器将会挂起。
    /opt/oracle/product/10g/network/log/listener.log有如下语句:
    WARNING: Subscription for node down event still pending

当再次出现这种现象时,建议客户先检查是否真因为此BUG造成此现象:
在操作系统命令行下执行下列命令:

$ ps -ef | grep tnslsnr
ora10g 8909 1 0 Sep 15 ? 902:44 /u05/10GHOME/DBHOME/bin/tnslsnr sales -inherit
ora10g 22685 8909 0 14:19:23 ? 0:00 /u05/10GHOME/DBHOME/bin/tnslsnr sales –inherit
正常情况只有一个监听器,而此BUG则会出现两个监听器。


解决方法:
    打补丁4518443 或者在listener.ora 文件里加入:
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF
    其中, 是数据库的监听器的名称。如:默认情况下,监听器名为:LISTENER 。则语句就是:
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

    重启监听程序:
    lsnrctl stop
    lncrctl start

    建议:先确定发生故障时,是否是上述的现象;
          如果要修改改参数,建议在周末进行,并且进行跟踪观察该参数对数据库的影响,如果出现异常,可以删除该参数后,重启

监听即可恢复原先的状态。
          如果要打补丁,需要跟oracle确定补丁的版本,以免由于打补丁引入新的bug。据说,oracle的这个版本bug比较多,建议以

后使用10.2.0.3以上的版本或者升级到这个版本。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/389291/viewspace-591214/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-06-26

  • 博文量
    14
  • 访问量
    13536