日期:2014-05-16  浏览次数:20815 次

Linux 平台下Oracle 9i/10g/11gR1 IO-Fencing 的hangcheck-timer 模块说明

 

一.官网的说明

参考MOS:

Linux: Hangcheck-Timer Module Requirements for Oracle 9i, 10g, and11gR1 RAC [ID 726833.1]

 

Hangcheck_timermodule is required to run a supported configuration in Oracle Real ApplicationClusters environments on Linux, with Oracle releases 9i, 10g, or 11gR1RAC.  This note identifies and outlines the requirements needed toconfigure hangcheck-timer in an Oracle Enterprise Linux, Red Hat Linux, or SUSELinux environment.

Linux 环境下Oracle 9i10g11gR1 RAC 需要配置Hangcheck_timer模块。

Note : Hangheck timer is notrequired starting with Oracle Clusterware 11gR2

注意,在模块在11gR2RAC 中已经不在需要配置了。

 

Starting in release 9.2.0.2and later, Oracle RAC environments required using a new I/O fencing model,named the hangcheck-timer module. This module was implemented to replace theWatchdog module, which provided similar fencing functionality. Hangcheck-timerwas subsequently delivered as part of the standard kernel distribution forLinux kernel releases 2.4 and above. 

9.2.0.2版本开始,ORACLERAC环境需要使用一个新的I/O fencing模块,叫做hangcheck-timer模块。这个模块用来代替Watchdog模块,提供类似的fencing功能。Hangcheck-timer模块是标准的linux2.4以上的内核中的一个子功能被发布。

 

Hangcheck-timer shouldbe loaded at boot time, and monitors the Linux kernel for long operatingsystem hangs that could affect the reliability of a RAC node.  It runs inkernel mode and uses the Time Stamp Counter (TSC) to catch scheduling delays ornode hangs.  This is done by setting a timer, then checking when the timerfires as to whether it was delayed by more than the allowed margin oferror.  If the duration exceeds the allowed time of (hangcheck_tick +hangcheck_margin seconds), the machine is restarted.  Hangcheck-timer willnot cause reboots to occur due to CPU starvation.

--Hangcheck-timer应该在系统启动的时候被加载, 并对于能够影响RAC节点稳定性的长时间的系统操作HANG进行内核监控。它运行在内核级别并使用Time Stamp Counter(TSC)来捕捉调度的延迟和节点HANG。这是通过设置一个timer,然后检查这个timerfires情况来判断是否延迟是否超过了误差的幅度。如果这个周期超过了允许的时间(也就是hangcheck_tick+hangcheck_margin秒),机器将会被重启,如果是CPU