ITPub博客

首页 > 应用开发 > IT综合 > LINUX平台下的10.2.0.4版本的CLUSTERWARE引入的变化-关于OPROCD进程

LINUX平台下的10.2.0.4版本的CLUSTERWARE引入的变化-关于OPROCD进程

原创 IT综合 作者:inthirties2 时间:2010-02-25 22:52:03 0 删除 编辑
linux 平台上的Oracle Clusterware 10.2.0.4和以后版本引入了一个新的Oracle Clusterware Process Monitor Daemon (OPROCD)进程来监控系统状态和集群中的每个节点的健康状态,就象已经在不使用第三方的cluster软件的UNIX系统中提供的那样,下面来看看 OPROCD到底是何方神圣。


OPROCD在linux平台上的10.2.0.4版本中和hangcheck- timer一起运行,它和hangcheck-timer模块没有联系和依赖关系,它由init.ccsd进程产生出来并用root用户运行。 OPROCD进程被锁定在内存中来监控集群中的每个它自己运行的节点,来检测机器上的硬件或者驱动的freezes,并且提供I/O的fencing功能 (这和SCSI提供的中断的fencing功能不同)。如果一个机器被冻结了足够长的时间后,它被会集群驱逐出节点,它自己需要强制重启自己来阻止集群从 失败的节点上的锁资源被重新组织后,失败的节点仍然访问共享的数据文件上的有疑问的I/O操作。为了提供这样的功能,OPROCD执行检查,然后停止运行 (休眠),然后如果在期望的时间内不能被唤醒,OPROCD将重启本机的节点。

注意:OPROCD在第三方实现的集群环境中是不存在的,因为在LINUX平台下没有通过验证的第三方的集群解决方案,所以linux平台下的0.2.0.4版本中OPROCD将总是会存在的。

OPROCD启动的时候有两个参数:
-t : 超时时间,缺省1000,单位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000)
-m : 重启前可接受的延迟,单位毫秒,缺省500 (OPROCD_DEFAULT_MARGIN=500)

推荐设置DIAGWAIT为13来增加重启前可接受的时间来把更多的日志信息写入磁盘。
缺省的话,-m的间隔为500:
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f

设置了DIAGWAIT为13会默认增加-m的时间,下面显示设置DIAGWAIT为13后,-m参数值为10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f

OPROCD和hangcheck-timer在linux平台下是同时运行并提供不同的检测机制的,当他们导致节点重启的话,在系统日志中记录的信息是不同的:
oprocd导致的重启会记录"SysRq: resetting"
Hangcheck-timer导致的重启会记录"Hangcheck: hangcheck is restarting the machine"
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21565006/viewspace-1031458/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: CentOS5.4上安装RAC
请登录后发表评论 登录
全部评论

注册时间:2010-02-10

  • 博文量
    24
  • 访问量
    38159