Linux 平台下Oracle 9i/10g/11gR1 IO-Fencing 的hangcheck-timer 模块说明
Linux 平台下Oracle 9i/10g/11gR1 IO-Fencing 的hangcheck-timer 模块说明
二.说明
Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。
这个模块在Linux内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加,
因此使用的是硬件时间,所以精度更高。配置这个模块需要2个参数:hangcheck_tick 和 hangcheck_margin。
hangcheck_tick用于定义多长时间检查一次,缺省值是30秒。 有可能内核本身很忙, 导致这个检查被推迟, 该模块还允许定义一个延迟上限,就是hangcheck_margin, 它的缺省值是180秒。
Hangcheck-timer 模块会根据hangcheck_tick 的设置,定时检查内核。只要2次检查的时间间隔小于 hangcheck_tick +hangchec_margin, 都会认为内核运行正常,否则就意味着运行异常,这个模块会自动重启系统。
CRS本身还有一个MissCount 参数,可以通过crsctl get css miscount 命令查看。
当RAC结点间的心跳信息丢失时, Clusterware 必须确保在进行重构时,故障结点确实是Dead 状态,否则结点仅是临时负载过高导致心跳丢失,
然后其他结点开始重构,但是结点没有重启,这样会损坏数据库。 因此MissCount 必须大于 hangcheck_tick+hangcheck_margin的和。
2.1 hangcheck-timer.ko模块安装
hangcheck-timer被默认安装在linux版本 2.4.9-e.12 及之上版本中,可以用如下命令核查hangcheck-timer是否安装。
[root@rac1 ~]# find /lib/modules-name "hangcheck-timer.ko"
/lib/modules/2.6.18-164.el5/kernel/drivers/char/hangcheck-timer.ko
/lib/modules/2.6.18-164.el5xen/kernel/drivers/char/hangcheck-timer.ko
有以上输出,代表已经安装了。
2.2 配置hangcheck-timer 模块
配置hangcheck-timer参数, 在/etc/modprobe.conf 中添加如下内容,这里根据数据库版本不同,内容也不同。
(1)9i: 假如"Oracle misscount"的缺省设置是220秒,则hangcheck_tick=30hangcheck_margin=180 hangcheck_reboot=1
(2)10g/11gR1: 假如"CSS misscount"的设置是30或者60秒,则hangcheck_tick=1hangcheck_margin=10 hangcheck_reboot=1
如:
[root@rac1 ~]# vi /etc/modprobe.conf
options hangcheck-timer hangcheck_tick=30hangcheck_margin=180
2.3 配置系统启动时自动加载模块
在/etc/rc.d/rc.local 中添加如下内容
[root@rac1 ~]# modprobe hangcheck-timer
[root@rac1 ~]# vi /etc/rc.d/rc.local
modprobe hangcheck-timer
2.4确认模块加载成功
[root@rac1 ~]# grep Hangcheck/var/log/messages | tail -2
Sep 7 19:53:03 rac1 kernel:Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60seconds).
Sep 7 19:53:03 rac1 kernel:Hangcheck: Using monotonic_clock().
查证hangcheck-timer的参数是否正确的方法
[root@rac2 ~]# /sbin/lsmod |grep hangcheck
hangcheck_timer 7897 0
一般rac这几个参数的设置一般如下:
misscount=220
hangcheck_tick=30
hangcheck_margin=180
目录 返回
首页