10gR2 RAC 配置时间同步和hangcheck-timer模块

 

1、配置时间同步

安装Oracle集群件和Oracle数据库软件时,Oracle安装程序将首先在本地节点上安装软件,然后再将软件远程复制到远程节点。如果两个RAC节点的日期和时间未同步,可能会收到类似于以下内容的错误:

"/bin/tar: ./inventory/Components21/oracle.ordim.server/10.2.0.1.0: timestamp 2010-12-04 06:24:04 is 25 s in the future"

 

所有节点的时间必须同步,这通常是通过配置NTP服务实现的。如果用户的网络中已经有一个时间服务器,那么可以所有节点都指向它,否则可以从集群中挑选一个节点作为时间服务器,让其他节点与它同步。

(1)网络中有时间服务器(本环境采取这种方式)

vi /etc/ntp.conf

 

server 192.168.1.7 prefer

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

(2)网络中没有时间服务器

可以选择集群中某个节点作为时间服务器,NTP服务只需要很少的系统资源。假设选择zhh1作为时间服务器,zhh2向它同步:

编辑zhh1的ntp配置文件

server 127.127.1.0          #注意不是127.0.0.1 

fudge  127.127.1.0 stratum 11 

driftfile /var/lib/ntp/drift broadcastdelay 0.008

然后编辑zhh2的ntp配置文件

server 192.168.5.235 prefer 

driftfile /var/lib/ntp/drift 

broadcastdelay 0.008

(3)启动ntp服务,并设置开机启动

[root@zhh1 ~]# /etc/init.d/ntpd start

[root@zhh1 ~]# chkconfig ntpd on

 

2、配置hangcheck-timer模块

9.2以前使用一个名为watchdogd的用户空间监视后台程序来监视集群的状态情况,并在出现故障时重新启动RAC节点。从Oracle<?xml:namespace prefix = st1 />9.2.0.2开始,此监视后台程序已被名为hangcheck-timer的模块所代替,该模块可以更好地解决可用性和可靠性问题。hang-check计时器被加载到Linux内核中并检查系统是否挂起。它将设置一个计时器,并在特定的时间量之后检查该计时器。有一个用于检查挂起情况的可配置阈值,如果超过该阈值,计算机将重新启动。尽管Oracle CRS并不需要hangcheck-timer模块,但Oracle强烈建议使用它。

hangcheck-timer模块使用了一个基于内核的计时器,该计时器周期性地检查系统任务调度程序,以捕获延迟,从而确定系统的运行状况。如果系统挂起或暂停,则计时器重置该节点。hangcheck-timer模块使用时间戳计数器(TSC) CPU寄存器,该寄存器在每个时钟信号处递增。由于此寄存器由硬件自动更新,因此TCS提供了更精确的时间度量。

两个参数,即hangcheck_tick(定义系统检查频率,默认60s,oracle建议30s)和hangcheck_margin(定义在重置RAC节点前的最大挂起延时,默认180s,oracle建议180s)来确定节点是否出现故障。hangcheck-timer模块会根据hangcheck_tick的设置,定时检查内核。只要响应时间小于hangcheck_tick+hangcheck_margin,都会认为内核运行正常。否则,就意味着运行异常,模块会自动重启系统。

 

注意:crs的参数MissCount必须大于hangcheck_tick+hangcheck_margin的和(需考证)

miscount的值用crsctl get css misscount查询,10gR2 linux平台,默认60s

 

设置hangcheck内核模块参数:

vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

设置hangcheck内核模块开机加载

vi /etc/rc.d/rc.local

/sbin/modprobe hangcheck-timer

 

要立即加载模块,执行:

modprobe -v hangcheck-timer

检查加载情况:

[root@zhh1 ~]# lsmod | grep hangcheck_timer

hangcheck_timer        5593 0

你可能感兴趣的:(oracle,server,集群,服务器,任务调度,linux内核)