关于Oracle10.2.0自行启动两个监听进程导致服务中断问题
来源:互联网 发布:手机全景拍摄软件 编辑:程序博客网 时间:2024/05/18 07:49
环境:
AIX6.1
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
Tomat 5.0.28
Oracle的安装文件是 10gr2_aix5l64_database.cpio.gz
问题描述:
服务运行大约一周后,Oracle不能连接、网站、业务系统中断服务。tomcat没有问题,但是Oracle监听不能正常服务,勇pl/sql连接长时间无反应,用proxool的监控servlet看一下发现是可用连接池可用连接数为0。初步确定是数据库出现了问题。
排查问题:
1、用sqlplus/nolog、conn /as sysdba、select cos(1) from dual 后可以正常查询数据库内容,确定数据库本身没有问题,问题可能在监听上;
2、执行lsnrctl status,
$ lsnrctl stop
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Production on 01-SEP- 2010 14:46:33
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=KJPTSERVER1)(PORT=1521)) )
......
长时间没有反应,确定问题在监听上;
3、执行ps -ef|grep tnslsnr,
结果如下
$ ps -ef|grep tnsl
oracle 422142 1 0 Aug 25 - 9:44 /oracle/database/product/10.2.0/bin/tnslsnr LISTENER -inherit
oracle 1024058 422142 0 04:50:31 - 0:00 /oracle/database/product/10.2.0/bin/tnslsnr LISTENER -inherit
oracle 1077302 831654 0 14:50:11 pts/1 0:00 grep tnsl
发现两个lsnrctl进程(前两个),从激活时间看,第一个监听是正常的、最初启动Oracle时创建的,第二个监听是第一个的派生、是不正常的。
4、kill第二个可疑监听进程
kill -9 1024058
一切恢复正常。
原因解读:
在Metalink上可以找到相关问题的很多解释,这个问题被最终确认为Oracle10201一个BUG,BUG号为:4518443,其会自动创建一个子监听器,当出现此情况时,监听器将会挂起。
Oracle称在较大压力下,监听进程可能出现间歇性停止服务,此时Oracle会spaw出另外一个监听进程,进而导致两个监听进程互相影响的故障。
检查监听日志文件 /oracle/database/product/10.2.0/network/log/listener.log 有如下语句:
WARNING: Subscription for node down event still pending
解决方案:
1、在非RAC环境
下,可以通过在listener.ora中设置参数:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF
来暂时回避这个BUG。
具体操作:
在listener.ora 文件里加入(我加在了最后):(NO-RAC)
SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF
其中,<listener_name> 是数据库的监听器的名称。如:默认情况下,监听器名为:LISTENER 。则语句就是:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER
=OFF
重启监听程序:
lsnrctl stop
lsnrctl start
lncrctl start
2、Oracle已经推出了相关Patch用来修正这个问题,可以在metalink上下载相关补丁并使用
/oracle/database/product/10.2.0/OPatch/opatch apply 安装即可。遗憾的是需要oracle服务帐号,我这里的没有购买oracle又没找到“免费”的,所以没有试验。
如果哪位有10.2.0的4518443补丁文件麻烦留言或者发给我freemail1001@163.com,windows、aix、linux下的都可以。
我在windows[10.2.0.1.0]、linux[10.2.0.1.0]下安装的都没有问题,只有aix下会出现这样的问题,怀疑只有oracle10.0.2.0.1的aix发行版本才有这个bug。
bug 4518443 LISTENER 无响应
上一篇 / 下一篇 2008-09-06 10:59:30
- 关于Oracle10.2.0自行启动两个监听进程导致服务中断问题
- 关于Oracle10.2.0自行启动两个监听进程导致服务中断问题
- Redhat5下启动ORACLE10.2.0.1监听时报下面错误
- 关于ORACLE监听服务无法启动的问题
- 关于Oracle10g监听服务不能启动的问题
- 关于oracle10安装问题
- Python 自启动&监听进程 服务
- 关于linux进程监听问题
- oracle 监听服务无法启动的问题
- Oracle10修改机器名后oracledbconsoleorcl服务无法启动的问题
- 关于Oracle10.2.0.5+linux5+raid5 IO问题分析
- 监听socket被子进程继承导致的通信问题
- 关于SIGPIPE导致进程终止的问题
- 关于OracleDBConsole服务启动问题
- 监听启动的进程
- 对shell脚本Ctrl+C导致被脚本启动的进程全部中断退出
- oracle10g安装完成后修改机器名导致无法启动监听服务的解决方法
- 重装虚拟机导致虚拟系统中的Oracle监听服务无法启动解决办法
- Symbian 模拟器在Vista Win7下无法正常启动
- ASP.NET MVC 四 过滤器Filter
- 三方流程
- 更新aptana中ext的类库为3.2版本
- jsp page指令 九个内置对象 四种属性范围 两种跳转的区别 <%@ include和jsp:include
- 关于Oracle10.2.0自行启动两个监听进程导致服务中断问题
- "The Trouble with Checked Exceptions A Conversation with Anders Hejlsberg, Part II" 阅读笔记
- 着色语言(Shader Language),以及 HLSL GLSL CG
- 一个关于微软的_toupper的bug!
- 放弃
- 常规页生命周期阶段
- css命名规范
- [转载]微软拼音输入法新体验之添加用户词汇
- Android Activity概述