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