Heartbeat is a pooling mechanism in clustered platforms to verify if the other server participating in the cluster is alive. Oracle also uses the heartbeat mechanism to verify the health of the other nodes participating in the cluster.In a RAC cluster , every node will poll the other node in the cluster,This helps each server in the cluster to understand the health of the other server in the cluster and take appropriate actions should polling fail. In RAC, the CSS performs polling in three different methods:

1)Network Heartbeat (NHB)

2)Disk Heartbeat (DHB)

3) Local Heartbeat (LHB)

1)Network Heartbeat (NHB)
The NHB is sent over the private interconnect. CSS sends an NHB every second from one node to all the other nodes in a cluster and receives an NHB from the remote nodes similarly every second. The NHB contains timestamp information from the local node and is used by the remote. If an acknowledgment is not received from the other node
in the cluster in 30 seconds (represented by the miscount value), CSS would request a cluster reconfiguration. The reconfiguration will not always be required. CSS will verify the health and state of the node through other methods before making a decision for reconfiguration.

2)Disk Heartbeat (DHB)
Apart from the NHB, we use the DHB, which is required for split-brain resolution. It contains a timestamp of the local time in Unix epoch seconds as well as a millisecond timer. The DHB is the definitive mechanism to make a decision about whether a node is still alive. DHB is a mechanism where each server in the cluster will write a timestamp to the voting disk every second. In the case of NHB failure, CSS will verify the voting disk to check if the node in question has written any timestamp to the voting disk during the NHB missed timeframe to decide if cluster reconfiguration is required.

3)Local Heartbeat (LHB)
LHB is an internal heartbeat mechanism where the message is sent to the cssdmonitor and the cssdagent to keep them informed about the health of the CSS. LHB notifications also happen every second and use and share the same thread with the NHB and DHB.

此外,我们还需要思考

1)当split-brain发生时,如何判断哪些节点存活下去?谁来计算和判断?根据什么来计算和判断?这些搞清楚,就差不多了。

2)上面介绍的是cluster层面的心跳,除此之外,Oracle层面也有自己的心跳机制,那就是通过ckpt进程和control files实现的,这里就不具体讲述了。

最新文章

  1. SpringMVC 文件上传
  2. springAOP实现基于注解的数据源动态切换
  3. java5 Exchanger数据交换
  4. 在Fedora8上安装jdk-7u25-linux-i586.rpm的步骤
  5. [zz]Java中的instanceof关键字
  6. Java语法细节(2)
  7. python练习程序(c100经典例1)
  8. 锋利jQuery 学习整理之 第六章 jQuery 与Ajax 的应用
  9. 全面修复IE,注册IE所有dll
  10. centos设置服务开机自启动
  11. 微信小程序简述
  12. CSS中的opacity,不透明度的坑
  13. Django+Vue打造购物网站(九)
  14. Python 转路由之uplink
  15. java笔记 -- GregorianCalendar和DateFormateSymbols 类方法
  16. ENVIRONMENT
  17. [React] Validate React Forms with Formik and Yup
  18. Faulty Odometer(九进制数)
  19. Mybatis批量插入及传参问题
  20. 【链表】【UVA11988】Broken Keyboard

热门文章

  1. 极简 R 包建立方法--转载
  2. _equipment
  3. JAVA中使用浮点数类型计算时,计算精度的问题
  4. win10,配置python3.6,虚拟环境
  5. 测试服务器上多个tomcat配置Nginx访问
  6. LaTeX 交叉引用系统简介
  7. es6中export和export default的区别
  8. QT5 解决QSqlDatabase: QMYSQL driver not loaded 问题
  9. AtCoder Beginner Contest 110 D - Factorization
  10. Wannafly挑战赛19 B矩阵