最近我发现如题所示的现象,工作平台为ORACLE9.2.0.4+Red Hat 8.0,由于我的系统配置为数据库自动启动状态,这样每关闭一次数据库,相应的监听器进程通过上述LSNRCTL STOP都无法关闭,这样重新自动启动数据库时,重新通过LSNRCTL START命令建立一个新的tnslsnr进程,本身重新启动的数据库系统工作正常,但是通过LINUX的TOP命令观察所有进程的状态,发现原来的tnslsnr进程强占了系统CPU的利用率的99%.
这个问题直接导致数据库自动运行机制的无法正常实施,需要在数据库重新启动后去人工杀掉(使用kill -9 tnslsnrXXX命令)过去的tnslsnr进程.
请问大家碰到过这种现象没有,另外,究竟如何解决该问题?!
多谢了!!!

解决方案 »

  1.   

    tnslsnr进程是9.2.0.4里面新增加的服务吗?我记得LSNRCTL与TNS一般没有关系吧。建议删除TNS服务名,重新建立一个。LSNRCT只是用来监听服务并响应的,而TNS就是服务名嘛。我原来倒是经常遇到因为TNS的问题不能启动ORACLE实例,但这主要是数据库实例建立过程中有问题,或者根本数据库服务器就没有安装好造成的。
      

  2.   

    关闭前做一次 LSNRCTL STOP可以吗?
      

  3.   

    你手工关闭也是不行吗?如果不行就是监听程序挂起了,这个可能与端口和网卡和网络有关系你修改LISTENER.ORA 文件把HOST修改为你的机器名试一下