1、网络心跳(Network HeartBeat,NHB)

首先是确定集群节点之间的连通性,以便节点之间能够了解彼此的状态,而对于Oracle集群,这是通过节点间的网络心跳来实现的。对于Oracle集群,ocssd.bin守护进程每秒钟向集群的其他节点发送网络心跳(当然是通过集群的私网)。

[root@lissen-node2 trace]# ps -ef | grep ocssd.bin | grep -v grep
grid      5081     1  1 19:43 ?        00:01:07 /u19/app/19.2.0.0.0/grid/bin/ocssd.bin[root@lissen-node2 trace]# grep NHB ocssd.trc
2019-11-28 22:37:37.228 :    CSSD:1378293504: [     INFO] clssnmCheckSplit: Node 1, lissen-node1, dead, last DHB (1574951827, 800434) after NHB (1574951827, 800284), but within reboot time 3000
2019-11-28 22:37:37.229 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.366 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.467 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.567 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.644 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.644 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434
2019-11-28 22:37:37.745 :    CSSD:1378293504: [     INFO] clssnmCheckKillStatus: Node 1, lissen-node1, down, due to timeout of DHB; last NHB TOD invariant clock 800284, TOD invariant clock 800434

2、磁盘心跳(Disk HeartBeat,DHB)

磁盘心跳的主要目的就是当集群脑裂时帮助制定脑裂的解决方案。Oracle集群的每一个节点每秒钟都会向集群的所有表决盘注册本地节点的磁盘心跳信息(也就是说,所有VF [Voting File]中的信息是相同的),同时也会将自己能够联系到的集群中其他节点的信息,或者说本节点认为集群中的成员列表信息写入到表决盘中。一旦发生脑裂,CSS的重新配置线程就可以通过表决盘中的信息了解集群中节点之间的连通性,从而决定集群会分裂成几个子集群,以及每个子集群包含的节点情况和每个节点的状态。磁盘心跳是通过ocssd.bin守护进程来实现的。

root@lissen-node2 trace]# grep "DHB" ocssd.trc
2019-11-28 20:26:51.293 :    CSSD:2399300800: [     INFO] clssnmvDHBValidateNCopy: node 1, lissen-node1, has a disk HB, but no network HB, DHB has rcfg 470438296, wrtcnt, 1198, LATS 3797414, lastSeqNo 0, uniqueness 1574943471, timestamp 1574944010/3901454
2019-11-28 20:26:55.444 :    CSSD:2399300800: [     INFO] clssnmvDHBValidateNcopy: Saving DHB uniqueness for node(1/lissen-node1), latestInfo(1574943471), readInfo(1574943471), nodeInfoDHB(0)
2019-11-28 20:26:55.445 :    CSSD:2399300800: [     INFO] clssnmvDHBValidateNcopy: Setting LATS valid due to second DHB seen on disk(0x7fa97c3365a0) for node(1/lissen-node1) nodeStatus 0x3
......
2019-11-28 20:27:03.538 :    CSSD:1708447488: [     INFO] clssnmvDHBValidateNCopy: node 1, lissen-node1, has a disk HB, but no network HB, DHB has rcfg 470438296, wrtcnt, 1216, LATS 3809654, lastSeqNo 1207, uniqueness 1574943471, timestamp 1574944022/3913564
2019-11-28 20:36:07.604 :    CSSD:1384389824: [     INFO] clssnmvDHBValidateNCopy: node 1, lissen-node1, h1582630987 to node structure for node lissen-node1, number 1; previous unique value was 0
2020-02-25 19:43:57.557 :    CSSD:3694849216: [     INFO] clssnmvDHBValidateNCopy: node 1, lissen-node1, has a disk HB, but no network HB, DHB has rcfg 478125832, wrtcnt, 21815, LATS 4294942300, lastSeqNo 21780, uniqueness 1582630987, timestamp 1582631036/4294947150

3、本地心跳(Local HeartBeat,LHB)

这种心跳机制是在11gR2版本中被引入的。这种心跳的作用是监控ocssd.bin进程以及本地节点的状态。在10g版本中,Oracle通过oclsomon和oprocd来实现。守护进程oclsomon.bin监控ocssd.bin进程的状态,oprocd.bin进程监控本节点是否出现了性能问题(例如,hang住)。从11.2.0.1版本开始,新的集群cssdagent和cssdmonitor被引入,它们的功能就是监控本地节点的ocssd.bin进程状态和本地节点的状态(是否hang住)。

[root@lissen-node2 trace]# ps -ef | grep cssdagent | grep -v grep
root      5045     1  0 19:43 ?        00:00:10 /u19/app/19.2.0.0.0/grid/bin/cssdagent
[root@lissen-node2 trace]# ps -ef | grep cssdmonitor | grep -v grep
root      5008     1  0 19:43 ?        00:00:10 /u19/app/19.2.0.0.0/grid/bin/cssdmonitor

4、网络心跳misscount和磁盘心跳disktimeout查询及设置

查询网络心跳NHB misscount
[root@lissen-node1 ~]# crsctl get css misscount;
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.查询磁盘心跳DHB disktimeout
[root@lissen-node1 ~]# crsctl get css disktimeout;
CRS-4678: Successful get disktimeout 200 for Cluster Synchronization Services.修改网络心跳NHB misscount
[root@lissen-node1 ~]# crsctl set css misscount 50;CRS-4684: Successful set of parameter misscount to 50 for Cluster Synchronization Services.[root@lissen-node1 ~]# crsctl set css misscount 30;
CRS-4684: Successful set of parameter misscount to 30 for Cluster Synchronization Services.修改磁盘心跳disktimeoutcrsctl set css disktimeout 300

5、脑裂和健忘

脑裂:网络心跳misscount(私网不通)会导致的问题

由于网络心跳misscount会导致,每个节点都认为其他节点不存在了,这时候表决盘被引入,通过投票机制,获得最高票数或者最早到达的获得投票的,幸存,其他节点被踢出。在Oracle RAC中Voting Disk用来记录节点间成员的状态,出现脑裂时,仲裁哪个partition获得控制权,其他的partition被剔除,之后ORACLE RAC就会很不友善的给踢出去的机子重启,这就是为什么有时候机子会不断重启的原因。

[root@lissen-node2 trace]# tail -f alert.log
2020-02-25 21:05:19.612 [OCSSD(5081)]CRS-1605: CSSD voting file is online: /dev/asm-disk5; details in /u19/app/grid/diag/crs/lissen-node2/crs/trace/ocssd.trc.
2020-02-25 21:05:19.635 [OCSSD(5081)]CRS-1605: CSSD voting file is online: /dev/asm-disk3; details in /u19/app/grid/diag/crs/lissen-node2/crs/trace/ocssd.trc.
2020-02-25 21:05:19.635 [OCSSD(5081)]CRS-1605: CSSD voting file is online: /dev/asm-disk4; details in /u19/app/grid/diag/crs/lissen-node2/crs/trace/ocssd.trc.

健忘:节点间配置文件不一致导致的。

Oracle RAC心跳机制相关推荐

  1. 关于ORACLE RAC心跳问题的释疑

    1.rac心跳的作用: 检测集群节点间的网络健康状态,还可用做缓存同步刷新及全局资源维护.在grid control出现后还传输数据块,其内联数据通信量比较大,通常是千兆网,当然使用万兆更好. 2.r ...

  2. Oracle RAC Failover机制分析

    为什么80%的码农都做不了架构师?>>>    Oracle  RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是 ...

  3. oracle rac 心跳参数 misscount disktimeout

    os: centos 7.6 db: oracle 19.3 OCSSD 进程是 Clusterware 最关键的进程,如果这个进程出现异常,会导致系统重启,这个进程提供CSS(Cluster Syn ...

  4. 关于oracle RAC心跳线采用直连 还是交换机连接的建议

    首先说说心跳线的作用: oracle RAC不得不提的概念:健忘 和 脑裂 健忘=>OCR 脑裂=>VOTE 下面谈谈直连的方式: 在oracle9i rac的时侯采用直连的要比走交换机的 ...

  5. ORACLE RAC心跳网络

    1. RAC默认心跳时间         版本 misscount disktimeout reboottime 10.2.0.1 60s \ \ 10.2.0.1+p4896338/10.2.0.2 ...

  6. Oracle RAC集群三种心跳机制

    Oracle 集群心跳机制:        Oracle集群如何维护集群的一致性,所谓的集群一致性就是指集群中每个成员能够了解其他成员的状态,而且每个成员获得的集群中其他节点的状态和集群中节点成员列表 ...

  7. 【云和恩墨大讲堂】Oracle RAC精讲之心跳机制

    世界上最遥远的距离,不是生与死,而是我们是集群的两个节点,你却听不到我的心跳. 自从云和恩墨大讲堂推出Oracle12.2体系架构图的系列课程,受到广大技术朋友们的关注和支持.本周是系列第四讲,主题: ...

  8. oracle rac对心跳要求_关于心跳网络引起的Oracle RAC的节点驱逐(不是实例驱逐)...

    关于心跳网络引起的Oracle RAC的节点驱逐(不是实例驱逐) 问: 假设如下场景:4个节点rac,心跳线走的是千m网络交换机,若是该千M网络交换机断电,我想知道crs的驱逐节点的算法是怎么样的? ...

  9. RAC数据库实例之间的三种心跳机制

    和CSS 部分类似,RAC数据库中存在3种心跳机制:网络心跳.磁盘心跳.本地心跳 1.网络心跳:        数据库的网络心跳机制是通过LMNO进程来实现的,每个实例的LMON金嫦娥会定期通过数据库 ...

最新文章

  1. oracle 行级死锁_ORACLE死锁的分类
  2. Big Data應用:以玩家意見之數據分析來探討何謂健康型線上遊戲(上)
  3. 领导,你可以做得更好
  4. 如何让不懂信息化的甲方客户看懂需求文档,并确认签字?
  5. MySQL判断字符串是否是数字
  6. Web前端经典面试题-JavaScript
  7. 黑苹果AppleStore不能下载应用
  8. 信用社pb通用记账_信用社会计记账采用的是()。A、收付实现制B、权责发生制C、借贷记账法D、单式记账法...
  9. Vue项目启动时卡在98% after emitting CopyPlugin
  10. 华为不提示连接计算机,求告知为什么现在华为用usb连电脑手机不显示
  11. Postman之CSV或JOSN文件实现数据驱动(参数化)
  12. ps如何增加可撤回的步数
  13. office图标不能正常显示
  14. 你会使用Excel中的【照相机】吗?
  15. oracle怎么对账,Oracle EBS 如何月结、对账[Z]
  16. 汽车电子之功能安全介绍
  17. 四、nginx访问控制
  18. 取代 Ant:使用 Maven 管理 Wowza 插件开发
  19. Cache的地址结构,tag到底与Cache什么关系,Cache容量与总容量,Cache行长,Cache字地址?
  20. pyqt5出现 -1073741515 (0xC0000135) 错误的一个解决办法

热门文章

  1. android 地图导航开发思路,基础功能-导航组件-开发指南-Android 导航SDK | 高德地图API...
  2. Linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?
  3. 保姆级搭建教程:Pinterest广告账户开户指南
  4. 叠加态wingner函数计算
  5. EXCEL 十进制角度转换为度分秒格式
  6. 前端面试题11-20
  7. Jmeter基础入门教程【2】--界面介绍及常用配置项
  8. 音频格式详解 CD WAV MP3 WMA MIDI RM RA OGG VOF AAC M4A APE FLAC TAK TTA MV RealAudio AIFF AU
  9. 工业智能仓储货架|HEGERLS供应电动移动式货架Electric mobile shelf自动立体化仓库货架
  10. 美国可以实现几乎对全球无死角的监控,这是可能的吗?