实例解析:Oracle10g两个监听进程的故障

来源:互联网 发布:有没有免费db2数据 编辑:程序博客网 时间:2024/06/08 05:09
[摘要] 关于Oracle10g启动两个监听进程的故障报告。故障发生时数据库无法通过监听正常建立连接,检查时会发现系统上存在两个监听器进程,其中一个是另外一个的子进程。

关于Oracle10g启动两个监听进程的故障报告

  故障发生时数据库无法通过监听正常建立连接,检查时会发现系统上存在两个监听器进程,其中一个是另外一个的子进程。

  示例:

  



  很多人在RAC环境下也遇到了类似的问题。

  这个问题被最终确认为一个BUG,BUG号为:4518443

  Oracle称在较大压力下,监听进程可能出现间歇性停止服务,此时Oracle会spaw出另外一个监听进程,进而导致两个监听进程互相影响的故障。

  在非RAC环境下,可以通过在listener.ora中设置参数来暂时回避这个BUG。

  



  同时Oracle已经推出了相关Patch用来修正这个问题。

Patch 4518443补丁安装实例

  沿用安装PSR实例中的环境。在安装PSR10.1.0.5后,检索metalink,发现若干在其之上的个别补丁。选择其中之一安装。

  个别补丁Patch 4518443修复BUG4518443,这一BUG的主要问题是TNS LISTENER在注册ONS(Oracle Notification Services)的同时如果创建子进程,那么LISTENER会挂起(HANGUP)。

  安装时,首先,从metalink下载补丁的压缩文件p4518443_10105_LINUX.zip.将此文件解压缩至某一目录中。解压缩后,这一补丁的所有文件都在子目录4518443下,目录名就是个别补丁的补丁号,opatch依据目录名获得信息,所以一定不要重命名子目录。

  然后,在终端窗口中,执行cd命令移动到4518443子目录中,执行以下命令:

$ $ORACLE_HOME/OPatch/opatch apply

  对inventory列表,确认安装操作:

$ $ORACLE_HOME/OPatch/opatch lsinventory

  执行卸载命令时,也必须使4518443子目录成为当前目录。其中,Rollback命令需要两个参数:-id给出个别补丁号;-ph 给出个别补丁解压缩后的路径。

$ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443

  随后再对inventory列表,则会看到这一个别补丁已经被移去。

  使用opatch显示已安装的版本信息

  不需要启动数据库,执行加选项的对inventory的列表命令,可以得到已安装的软件的各个组件的详细版本信息。

$ $ORACLE_HOME/OPatch/opatch lsinventory -detail

  安全补丁CPU

  一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁。CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发布的所有CPU的内容。

  事实上,在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中。Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新,对处于维持支持范围的产品不提供新的CPU.(对于9.2以前的版本,只对处于ECS和EMS期间的版本提供CPU更新。)一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。

  也就是说,一般需要先安装最新PSR后才可能安装CPU.由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。

原创粉丝点击