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

linux平台上的Oracle Clusterware 10.2.0.4和以后版本引入了一个新的Oracle Clusterware Process Monitor Daemon (OPROCD)进程来监控系统状态和集群中的每个节点的健康状态,就象已经在不使用第三方的cluster软件的UNIX系统中提供的那样,下面来看看OPROCD到底是何方神圣。

[@more@]

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"

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

转载于:http://blog.itpub.net/25016/viewspace-1008103/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值