♣
题目部分
在Oracle中,集群有哪几种心跳机制?
♣
答案部分
在几乎所有高可用的环境中都有心跳的存在,心跳的主要目的是为了检测集群中节点的状态。如果检测失败,那么管理软件会认为某个节点存在故障,并根据一定的算法来做出适当地处理,避免对环境的破坏,即高可用性软件进行自动修复。
Oracle集群有3种心跳机制,分别为网络心跳(Network HeartBeat,NHB)、磁盘心跳(Disk HeartBeat,DHB)和本地心跳(Local HeartBeat,LHB),如下表所示:
在默认情况下,上表中的参数是Oracle自动判定的,并且不建议调整(可以通过命令“crsctl set css”来调整)。由于本地心跳和网络心跳都是由相同的线程来发送的,所以,本地心跳和网络心跳的延迟时间是一样的,默认都是30s。网络心跳和磁盘心跳是由OCSSD进程来检测的。所以,网络和存储的稳定是一方面,OCSSD进程的稳定对RAC的稳定运行也至关重要。
关于心跳还有一个参数为reboottime(short I/O timeout),该参数表示节点被踢出之后,节点开始重启允许的最大时间,默认为3s,如下所示:
1[ZHLHRDB1:oracle]:/oracle> ./crsctl get css reboottime 2CRS-4678: Successful get reboottime 3 for Cluster Synchronization Services.
从结果可以看出,当前节点被踢出集群之后允许开始重启的最大时间是3秒。