linux下oracle10g lsnrctl没反应 sqlplus正常 bug4518443

现象描述:使用的oracle 版本为linux版10.2.0.1.0,在命令行界面输入lsnrctl status后即没有反应,同时输入lsnrctl stop也没有任何反应。已经连接数据库的应用正常运行,但是新的应用无法连接数据库。在oracle数据库服务器使用sqlplus正常,但是在客户端使用PL/SQL以及navicat均无法连接数据库服务端。

问题诊断:oracle监听宕了

经上网查询资料,发现这是由于oracle 10.2.0.1.0中一个编号为4518443的bug导致的,这个bug会自动创建一个子监听器,当出现这种情况时,监听就会挂起。而且次BUG在任何操作系统中均存在。

解决方式:

1、查看LISTNER进程(两条语句均可以)

$ ps aux |grep LISTENER

$ ps aux |grep tnslsnr

正常情况只有一个LISTENER进程,而此BUG则会出现两个LISTENER进程,因此需要关闭一个进程。

2、kill LISTENER进程(两个进程均需要kill)

$ kill -9 26184

3、重启LISTENER

$ lsnrctl stop

$ lsnrctl start

4、再次查看LISTNER进程

$ ps aux |grep LISTENER

这个时候就会发现只存在一条LISTENER进程

oracle    9635 10.8  0.0 204508  9512 ?        Rsl  Sep18 620:18 $ORACLE_HOME/bin/tnslsnr LISTENER -inherit

到这里为止只是保证了LISTENER可以正常使用,如果不再进一步处理,则过一段时间还是会出现相同的问题。因此我们需要彻底的解决此问题

5、彻底解决

5.1:升级解决

将oracle版本升级到oracle 10.2.0.3以后的版本既可以。

Ps:在线升级线上生产数据库是存在极大的风险的,一旦升级失败将导致线上应用全部无法访问,因此在线上使用的生产数据库不建议使用此方法来解决这个问题,除非是升级完毕后才投入到线上使用。

5.2:修改listener.ora文件

在listener.ora文件中加上如下参数,SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF ##这里的listener_name是配置的listener的名字,如果是默认的就是LISTENER。具体修改如下

$ vi $ORACLE_HOME/network/admin/listener.ora

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

6、然后再重启LISTENER

$ lsnrctl stop

$ lncrctl start

如果仅仅是修改这一个BUG,建议大家使用修改listener.ora文件这个方式,同时也提醒大家在ORACLE正式投入线上使用之前先升级ORACLE。

时间: 2024-08-08 09:26:27

linux下oracle10g lsnrctl没反应 sqlplus正常 bug4518443的相关文章

linux下操作

一.没有正确安装GNOME电源管理器的默认配置 二.oracle启停 1. linux下启动oraclesu - oraclesqlplus /nologconn /as sysdbastartupexitlsnrctl startexit2. linux下关闭oraclesu - oraclesqlplus /nologconn /as sysdbashutdown immediateexitlsnrctl stopexit 3.启动监听器[email protected]:~> lsnrct

4.Linux下获取帮助

4.Linux下获取帮助 ·没必要记住所有东西,Linux提供了详细的帮助工具及文档, ·whatis,查看帮助的第一行, ·help:使用-h或者--help获取,如 ls --help或者help ls, ·man:(manual)Linux最常用的帮助命令,将要获取帮助的命令作为参数运行man命令,如man ls, ·man类型共分9种,如man 1 ls,man 5 ls, ·man -k 关键字,可以用来查询包含该关键字的文档,如man -k passwd, ·info:与man类似,

Linux下配login.sql,并在.bash_profile中配置SQLPATH

在linux下的目录/u01/oracle/sqlplus/admin下编写了一个login.sql,代码如下 ---login.sql-- define _editor=vim set serveroutput on size 1000000 set trimspool on set long 5000 set linesize 100 set pagesize 9999 column plan_plus_exp format a80 column global_name new_value

Linux 下 新增Oracle10g 实例

主要分为5步:创建实例目录,创建密码文件,创建参数文件,创建建库脚本并建库,创建数据字典. 其中,需要特别注意2点: 目录的权限,即用户和所属用户组都要是oracle.可以切换到已存在的oracle用户或者以root创建,然后赋权. 创建实例的时候指定编码. 下面以 Oracle 10.2.0.1.0为例,开始创建: 说明: 此服务器上已经有一个正常运行的oracle实例cms,开机自启动,一个监听. 已有一个用户oracle,所属用户组oinstall. oracle环境变量:ORACLE_S

rlwrap: command not found和解决linux下sqlplus 提供浏览历史命令行的功能

rlwrap工具可以解决linux下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题 1.安装 需要readline包 这个安装光盘就有 [[email protected] RedHat]# cd RPMS/[[email protected] RPMS]# rpm -Uvh readline*warning: readline-4.3-13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60eerror: Failed

ORACLE 11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器登录进去使用sqlplus登录也显示中文乱码. 1.检查windows7下面cmd里面sqlplus中oracle server端的字符集. 打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集. SQL> select userenv('language') fromdual; US

解决Linux下sqlplus中文乱码问题

错误现象:在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决:因为windows下正常,所以问题应出现在Linux客户端.用下列sql查询数据库字符集为"ZHS16GBK": SELECT * FROM nls_database_parameters t WHERE t.parameter = 'NLS_CHARACTERSET'; 设置环境变量NLS_LANG,问题解决. export NLS_LA

linux下sqlplus实现浏览历史命令和删除错误字母功能

Rlwrap 官网下载http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap 工具可以解决linux 下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题安装过程注:将rlwrap-0.37.tar.gz 拷贝到/home 下# cd /home# tar zxvf rlwrap-0.37.tar.gz… …# cd rlwrap-0.37# ls# ./configure prefix=/usr/rlwrap    //我在这里指

Linux下oracle系统安装到数据库建立配置及最后oracle的dmp文件导入一站式操作记录

简介 之前也在linux下安装过oralce,可每次都是迷迷糊糊的,因为大脑一片空白,网上随便看见一个文档就直接复制,最后搞了乱七八糟,虽然装上了,却乱得很,最近几天因为离职,交接的时候又要安装oracle,发现老遇到错误,导致装不上了,通过这次我好好的研究了下oracle,非要搞清楚它,现在记录下来,希望能给其他网上朋友遇到问题时提供点帮助,该篇文件借鉴大量网友的总结,首先谢谢他们! 安装环境 Linux 服务器: SuSe11-linux      64/32位 Oracle服务器: Ora