监听无响应,同时发现两个Listener

环境:Linux 4.7 + Oracle 10g Version 10.2.0.1.0

故障现象:

[oracle@dbserv ~]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JUN-2012 10:15:56

Copyright (c) 1991, 2005, Oracle.All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

...无响应…

[oracle@dbserv ~]$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JUN-2012 10:17:32

Copyright (c) 1991, 2005, Oracle.All rights reserved.

...无响应…

网上资料说,这个问题被最终确认为一个BUG,BUG号为:4518443,如下是诊断及具体处理过程:


查看日志,正常:

[oracle@dbserv ~]$ cd /oracle/admin/test/bdump/

[oracle@dbserv bdump]$ tail -100lf alert_test.log

Thread 1 advanced to log sequence 1600

Current log# 1 seq# 1600 mem# 0: /oradata/test/redo01.log

Sun Jun 24 12:00:14 2012

Thread 1 advanced to log sequence 1601

Current log# 2 seq# 1601 mem# 0: /oradata/test/redo02.log

Mon Jun 25 05:40:49 2012

Thread 1 advanced to log sequence 1602

Current log# 3 seq# 1602 mem# 0: /oradata/test/redo03.log

发现两个监听进程:

[oracle@dbserv ~]$ ps -ef | grep tnslsnr

oracle 1307710 Jun21 ?00:00:14 /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit

oracle23977 227080 10:24 pts/200:00:00 grep tnslsnr

oracle24120 130770 Jun23 ?00:00:00 /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit

在这里出现两个Listener进程,而且一个进程和另一个的子进程。如下删除了子进程后,系统恢复正常:

[oracle@dbserv ~]$ kill -9 24120

[oracle@dbserv ~]$ ps -ef | grep tnslsnr

oracle1307710 Jun21 ?00:00:14 /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit

oracle24733 227080 10:28 pts/200:00:00 grep tnslsnr

[oracle@dbserv ~]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-JUN-2012 10:28:30

Copyright (c) 1991, 2005, Oracle.All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

AliasLISTENER

VersionTNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date21-JUN-2012 02:14:36

Uptime4 days 8 hr. 13 min. 53 sec

Trace Leveloff

SecurityON: Local OS Authentication

SNMPON

Listener Parameter File/oracle/product/10.2.0/network/admin/listener.ora

Listener Log File/oracle/product/10.2.0/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserv)(PORT=1521)))

Services Summary...

Service "test" has 1 instance(s).

Instance "test", status READY, has 1 handler(s) for this service...

Service "testXDB" has 1 instance(s).

Instance "test", status READY, has 1 handler(s) for this service...

Service "test_XPT" has 1 instance(s).

Instance "test", status READY, has 1 handler(s) for this service...

The command completed successfully

[oracle@dbserv ~]$ lsnrct reload

-bash: lsnrct: command not found

[oracle@dbserv ~]$

故障恢复正常,如果此时监听还是无响应,则可以Kill另一个Listener进程后重启监听即可。

在非RAC环境下,在Listener上增加

SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF

参数也能避免该Oracle Bug

在linstener上增加参数:

[oracle@dbserv admin]$ vi listener.ora

# listener.ora Network Configuration File: /oracle/product/10.2.0/network/admin/listener.ora

# Generated by Oracle configuration tools.

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_TEST=OFF

SID_LIST_LISTENER_test =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/product/10.2.0)

(PROGRAM = extproc)

)

)

LISTENER_test=

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))

(ADDRESS = (PROTOCOL = TCP)(HOST = dbserv)(PORT = 1521))

)

)

 

转自:http://blog.itpub.net/post/38575/527965

解决参开:http://qbaok.blog.163.com/blog/static/101292652009827113945863/

http://www.eygle.com/archives/2007/06/tns_child_listener_forked.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值