【DB笔试面试716】在Oracle中,集群有哪几种心跳机制?

【DB笔试面试716】在Oracle中,集群有哪几种心跳机制?

题目部分

在Oracle中,集群有哪几种心跳机制?

     

答案部分

在几乎所有高可用的环境中都有心跳的存在,心跳的主要目的是为了检测集群中节点的状态。如果检测失败,那么管理软件会认为某个节点存在故障,并根据一定的算法来做出适当地处理,避免对环境的破坏,即高可用性软件进行自动修复。

Oracle集群有3种心跳机制,分别为网络心跳(Network HeartBeat,NHB)、磁盘心跳(Disk HeartBeat,DHB)和本地心跳(Local HeartBeat,LHB),如下表所示:

【DB笔试面试716】在Oracle中,集群有哪几种心跳机制?

在默认情况下,上表中的参数是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秒。


上一篇:linux高可用集群(HA)原理详解


下一篇:Heartbeat部署