`
itspace
  • 浏览: 981943 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle bug之new child listener process forked

阅读更多
客户打电话告之数据库再次出现挂起现象,于是部署oswatcher在其主机上运行,oswatcher确实是好工具,强烈推荐。
操作系统平台为
引用
$ uname -a
HP-UX hpuxa B.11.23 U ia64 4101409079 unlimited-user license

数据库版本为
引用
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for HPUX: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production


用sysdump,并用ass.awk格式化trace文件,发现数据库一切正常
引用
[root@mcprod udump]# awk -f ass109.awk radinfo.trc

Starting Systemstate 1
...................................................................
Ass.Awk Version 1.0.9 - Processing radinfo.trc

System State 1
~~~~~~~~~~~~~~~~
1:                                     
2:  waiting for 'pmon timer'            wait
3:  waiting for 'rdbms ipc message'     wait
4:  waiting for 'rdbms ipc message'     wait
5:  last wait for 'rdbms ipc message'  
6:  waiting for 'rdbms ipc message'     wait
7:  waiting for 'rdbms ipc message'     wait
8:  last wait for 'rdbms ipc message'  
9:  waiting for 'log file parallel write' wait
10: waiting for 'rdbms ipc message'     wait
11: waiting for 'smon timer'            wait
12: waiting for 'rdbms ipc message'     wait
13: waiting for 'rdbms ipc message'     wait
14: waiting for 'rdbms ipc message'     wait
15: waiting for 'rdbms ipc message'     wait
16: for 'Streams AQ: waiting for time management or cleanup tasks' wait
17: waiting for 'Streams AQ: qmn coordinator idle wait' wait
18: waiting for 'db file scattered read' (7,d0279,10) wait
19: waiting for 'Streams AQ: qmn slave idle wait' wait
20: waiting for 'db file sequential read' (3,7e33,1) wait
21: last wait for 'ksdxexeotherwait'   
22: waiting for 'SQL*Net message from client' wait
23: waiting for 'SQL*Net message from client' wait
24: waiting for 'db file sequential read' (9,1,1) wait
25: waiting for 'SQL*Net message from client' wait
29: waiting for 'SQL*Net message from client' wait
31: waiting for 'SQL*Net message from client' wait
32: waiting for 'SQL*Net message from client' wait
33: waiting for 'SQL*Net message from client' wait
35: waiting for 'SQL*Net message from client' wait
36: last wait for 'SQL*Net message to client'
     Cmd: Select
37: waiting for 'SQL*Net message from client' wait
38: last wait for 'SQL*Net more data from client'
     Cmd: Update
40: waiting for 'SQL*Net message from client' wait
42: waiting for 'SQL*Net message from client' wait
43: waiting for 'SQL*Net message from client' wait
44: waiting for 'SQL*Net message from client' wait
45: waiting for 'SQL*Net message from client' wait
46: waiting for 'SQL*Net message from client' wait
47: waiting for 'SQL*Net message from client' wait
48: last wait for 'SQL*Net message to client'
     Cmd: Select
49: waiting for 'SQL*Net message from client' wait
50: waiting for 'SQL*Net message from client' wait
51: waiting for 'SQL*Net message to client' wait
     Cmd: Select
52: waiting for 'SQL*Net message from client' wait
53: waiting for 'SQL*Net message from client' wait
54: waiting for 'SQL*Net message from client' wait
55: waiting for 'SQL*Net message from client' wait
56: waiting for 'SQL*Net message from client' wait
57: waiting for 'SQL*Net message from client' wait
60: waiting for 'SQL*Net message from client' wait
64: waiting for 'SQL*Net message from client' wait
65: waiting for 'SQL*Net message from client' wait
66: waiting for 'SQL*Net message from client' wait
73: waiting for 'SQL*Net message from client' wait
74: waiting for 'SQL*Net message from client' wait
78: waiting for 'SQL*Net message from client' wait
83: waiting for 'SQL*Net message from client' wait
100:waiting for 'SQL*Net message from client' wait
109:waiting for 'SQL*Net message from client' wait
112:waiting for 'SQL*Net message from client' wait
113:waiting for 'SQL*Net message from client' wait
116:waiting for 'SQL*Net message from client' wait
117:waiting for 'SQL*Net message from client' wait
119:waiting for 'SQL*Net message from client' wait
147:waiting for 'SQL*Net message from client' wait
148:waiting for 'SQL*Net message from client' wait

NO BLOCKING PROCESSES FOUND


61789 Lines Processed.


经过一系列确认,系统挂起时系统资源一切正常。
引用
zzz ***Mon Mar 15 17:01:38 EAT 2010
         procs           memory                   page                              faults       cpu
    r     b     w      avm    free   re   at    pi   po    fr   de    sr     in     sy    cs  us sy id
    1     0     0   416503   35084  150    8     0    0     0    0     1   1807   9128   365   3  1 96
    1     0     0   416503   33641  674   37     0    0     0    0     0   1440  18941   347   2  1 97
    1     0     0   416503   35668  540   29     0    0     0    0     0   1410  16083   322   1  0 99
zzz ***Mon Mar 15 17:02:08 EAT 2010
         procs           memory                   page                              faults       cpu
    r     b     w      avm    free   re   at    pi   po    fr   de    sr     in     sy    cs  us sy id
    3     1     0   425983   27232  150    8     0    0     0    0     1   1807   9128   365   3  1 96
    3     1     0   425983   26154  693   29     0    0     0    0     0   1715  21596   462   6  4 90
    3     1     0   425983   27765  727   23     0    0     0    0     0   1725  22723   471   3  1 96
zzz ***Mon Mar 15 17:02:38 EAT 2010
         procs           memory                   page                              faults       cpu
    r     b     w      avm    free   re   at    pi   po    fr   de    sr     in     sy    cs  us sy id
    1     0     0   397676   28238  150    8     0    0     0    0     1   1807   9128   365   3  1 96
    1     0     0   397676   28772  317   38     0    0     0    0     0   1223   9243   218   5  2 93
    1     0     0   397676   30018  340   30     0    0     0    0     0   1225   9961   211   4  2 94

观察oswatcher一栏oswps中发现listener竟然派生出一个子进程
引用
1401 S   oracle  7054  2286  0 154 20 e00000012bfc34c0  588 e00000012a764d00 17:05:03 ?         0:00 /oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit
1401 R   oracle  2286     1  0 152 20 e00000013f3984c0  588                -  Feb 23  ?        28:08 /oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit


经查是Oracle bug所致。
解决方法如下
1、在监听文件里添加SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF
引用
$ more listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = RADINFO)
      (ORACLE_HOME = /oracle/product/10.2.0/db_1)
      (GLOBAL_DBNAME = RADINFO)
       )
)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hpuxa)(PORT = 1521))
    )
  )

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

2、或者在$ORACLE_HOME/opmn/conf目录下将ons.config文件移除
引用
$ pwd
/oracle/product/10.2.0/db_1/opmn/conf
$ ls -rtl
total 6
-rw-r--r--   1 oracle     dba             71 Feb 21  2006 ons.config.tmp
-rw-------   1 oracle     dba             44 Feb 28  2007 ons.config.backup.10203
-rw-------   1 oracle     dba             66 Mar 22 15:11 ons.config.bak


详见metalink。340091.1,现主要摘录如下

Solution
引用
Bug 4518443 is fixed in 10.2.0.3

- OR -

Apply Patch 4518443  for the problem (if a patch is available)

- OR -

As a workaround, the following parameter can be added to 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.

For example, if the listener name is LISTENER (default), the parameter would be:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

This will prevent the listener from registering against ONS (Oracle Notification Services), which is the area affected by bug:4518443. For more information on ONS, please refer to eg. the Oracle10g Release 2 documentation ("Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide").

Please note, adding SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name> to listener.ora file on RAC, will mean that FAN (fast application notification) will not be possible. See Note 220970.1 RAC: Frequently Asked Questions for further information on FAN
0
0
分享到:
评论

相关推荐

    Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的解决文档

    1234 SolutionRecommendations for protecting against this vulnerability can be found at:My Oracle Support Note 1340831.1 for Oracle Database deployments that use Oracle Real Application Clusters (RAC)....

    Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置.docx

    Oracle 数据库监听器(LISTENER)和本地服务名(Tnsname)配置 本文主要介绍 Oracle 数据库监听器(LISTENER)和本地服务名(Tnsname)的配置,旨在帮助读者了解 Oracle 网络连接配置的主要组件和配置方法。 一、监听器...

    针对Oracle的TNS listener的攻击原理及方法介绍

    Oracle TNS Listener是Oracle数据库系统中用于监听客户端请求的关键组件。其基本功能是在网络上监听客户端发来的连接请求,并对这些请求做出响应。然而,TNS Listener也存在一系列安全漏洞,尤其是缓冲区溢出和配置...

    Oracle listener详解

    Oracle监听器(Listener)是Oracle数据库系统中至关重要的组件,它负责管理客户端和数据库服务器之间的网络通信。监听器通过监听特定的网络端口,接收来自客户端的连接请求,并根据配置进行响应。理解监听器的工作...

    Integrigy_OracleDB_Listener_Security.pdf

    ### Oracle Database Listener安全指南 #### 一、简介 在Integrigy发布的《Oracle Database Listener Security Guide》(Oracle TNS Listener 安全指南)中,该文档提供了关于Oracle数据库监听器的安全配置与管理...

    配置ORACLE的listener.ora、tnsnames.ora

    Oracle数据库是世界上最广泛使用的数据库系统之一,其稳定性和性能深受企业青睐。在Oracle数据库的运行过程中,`listener.ora`和`tnsnames.ora`是两个至关重要的配置文件,它们负责管理和通信数据库实例与客户端应用...

    RAC listener.ora详解.docx

    Oracle RAC 监听器配置文件 listener.ora 详解 Oracle RAC 监听器配置文件 listener.ora 是一个核心配置文件,用于配置 Oracle Net Listener 的参数。本文将详细介绍 listener.ora 文件的配置参数、协议地址参数、...

    Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法

    主要介绍了Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675的完美解决方法的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

    centos5下oracle启动监听提示:The listener supports no services问题

    在 Centos5 下安装 Oracle 数据库后,启动监听时可能会遇到 “The listener supports no services” 的问题,本文将讨论解决该问题的几种方法。 问题描述 在 Centos5 下安装 Oracle 11g 数据库后,启动监听时可能...

    Oracle listener报1067错误

    专门解决Oracle数据库listener报1067错误,简洁有效的解决这个问题,非常实用。

    oracle_listener_详解

    ### Oracle Listener 详解 #### 一、Oracle Listener 概述 **Oracle Listener** 是 Oracle 数据库系统中的一个重要组件,负责监听来自客户端的连接请求,并基于这些请求管理与客户端的通信。Listener 的主要职责...

    Oracle 监听器 Listener资料.docx

    Oracle 监听器 Listener 资料...Oracle 监听器 Listener 是 Oracle 数据库服务器的核心组件之一,对于数据库的性能和可用性产生着重要的影响。了解监听器的功能和操作,对于数据库管理员和开发人员来说都是非常重要的。

    Oracle_LISTENER监听文件参数详

    "Oracle LISTENER 监听文件参数详解及 Lsnrctl 命令综述" Oracle LISTENER 监听文件参数详解: LISTENER 监听文件参数是 Oracle Net Listener 的配置文件,用于定义监听器的行为和参数。下面是 LISTENER 监听文件...

    oracle修改机器名后不能启动Console的解决方案

    - 首先确保已经更改了`ORACLE_HOME`目录下的`tnsnames.ora`和`listener.ora`文件中的主机名配置,使之与新主机名一致。 - 检查并更新环境变量`ORACLE_SID`。可以通过命令行输入`set ORACLE_SID=orcl`来临时设置...

    认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件

    ### 认识Oracle中的sqlnet.ora、tnsnames.ora与listener.ora三个关键配置文件 #### 一、概述 在Oracle安装过程中,我们常常会在安装目录下的`$HOME/network/admin`文件夹中发现三个重要的配置文件:`sqlnet.ora`、...

    oracle 监听文件 listener.ora

    oracle 监听文件 listener.ora

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    远程登录并启动oracle数据库 解决ORA-01031

    在Oracle数据库管理过程中,远程登录与启动数据库是非常重要的操作之一。这不仅能够提高数据库管理员的工作效率,还能帮助他们更好地监控和维护数据库。本文将详细介绍如何实现这一过程,并针对“ORA-01031: ...

Global site tag (gtag.js) - Google Analytics