♣
题目部分
在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,如下所示:
[ZHLHRDB1:oracle]:/oracle> ./crsctl get css reboottime
CRS-4678: Successful get reboottime 3 for Cluster Synchronization Services.
从结果可以看出,当前节点被踢出集群之后允许开始重启的最大时间是3秒。
& 说明:
有关心跳的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2139636/
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步