暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
Oracle RAC集群三种心跳机制.pdf
1158
23页
138次
2023-12-20
免费下载
Oracle RAC 集群三种心跳机制
Oracle 集群心跳机制:
Oracle 集群如何维护集群的一致性,所谓的集群一致性就是指集群中每个成员能够
了解其他成员的状态,而且每个成员获得的集群中其他节点的状态和集群中节点成员列表信
息是一致的,这也是集群最基本的要求。
Oracle 通过三种机制来实现集群的一致性:
网络心跳: 确定节点与节点间的连通性,以便节点之间能够了解彼此的状态。
磁盘心跳: 用一个或多个共享的位置来保存节点之间的连通性信息,以便在集群需要进行重
新配置时,能够做出正确的决定并记录集群最新的状态.
本地心跳: 本地节点自我监控机制,以便当本地节点出现问题时能够主动离开集群,避免不
一致的产生
一:网络心跳
ocssd 进程每秒钟通过集群的私网会向集群的其他节点发送网络心跳.
例如一个 4 节点的集群,集群的每一个节点每一秒钟都会向集群中的其他三个几点
发送网络心跳信息,也就是说每个节点每一秒钟也会收到集群中其他节点发送的网络心跳。
既然节点间互相发送网络心跳,就需要有一种机制来确定节点之间的连通性,以及当网络心
跳出现问题时的处理机制。
网络心跳主要通过以下的 ocssd.bin 线程实现:
发送线程:该线程每秒钟向集群中所有的节点发送网络心跳信息。
分析线程:该线程会分析收到的网络心跳信息并进行处理如果发现集群中的某一个
节点持续丢失网络心跳,就会通知集群进行重新配置。
集群重新配置线程:负责对集群进行重新配置
派遣线程:该线程负责接收从远程节点传递过来的信息,之后,根据信息的种类发送
给相关线程进行处理。
工作机制:
1.发送线程负责每秒钟发送网络心跳到其他远程节点。
2.派遣线程负责接收从远程节点发送过来的网络心跳信息。
3.分析线程会处理由派遣线程接收到的网络心跳信息,确认节点连通性.
例如:当分析线程发现某些节点的连通性出现问题时,也就是说连续一段时间内没
发现某一个节点或几个节点的网络心跳,集群就会进行重新配置。而这种情况下重新配置的
结果往往就是某一节点或几个节点离开集群,所以节点间的私网通信问题会破环集
性。
二:磁盘心跳
磁盘心跳的主要目的就是当集群发生脑裂时帮助制定脑裂的解决方案。
解释
Oracle 集群的每一个节点每秒钟都会向集群的所有表决盘 VF 注册本地节点的磁盘心
跳信息,同时也会将自己能够联系到的集群中其他节点的信息写入表决盘中,
,css 的重新配置线程就可以通过表决盘中的信息了解集群中节点之间的连通性,从而决定
集群会分裂成几个子集群,以及每个子集群包含的节点情况和每个节点的状态。
示例:
一个两节点的集群(node1,node2)配置了三块 VF(VF1,VF2,VF3)node1无法访问 VF1
node2 无法访问 VF2这意味着两个节点仍然同时能够访问 VF3而当集群中某一节点无
访问大多数 VF 时([VF/2]+1,这就意味着当需要通过 VF 中的信息决定节点去留时,可能
会出现没有任何一个 VF 可被集群中的全部节点访问到的情况,这也意味着无法决定哪些节
点应该离开集群,哪些节点应该被保留。
一个两节点的集群(node1,node2) 3 VF(VF1,VF2,VF3),node1 访
VF1,VF2 node2 无法访问 VF3,这意味着当出现网络问题时,集群无法通过 VF 的信息获得
一致的所有节点的状态,也就无法完成集群的重新配置。所以无论如何变化,只要节点必须
能够访问到[VF/2]+1 VF 的规则,就一定能够保证至少一个 VF 能够被所有节点访问到。
三:本地心跳
本地心跳的作用是监控 ocssd.bin 进程以及本地节点的状态。
cssdagent cssdmonitor 的功能就是监控本地节点的 ocssd.bin 进程状态和本地节点
的状态,对于 ocssd.bin 进程的监控是通过本地心跳来实现的,Oracle 会在每一秒钟,在发
送网络心跳的同时向 cssdagent cssdmonitor 发送本地 ocssd.bin 进程的状态(本地心跳)
如果本地心跳没有问题,cssdagent 就认为 ocssd.bin 进程正常。如果 ocssd.bin 进程持续
失本地心跳(到达 misscount 的时间)ocssdagent 就会认为本地节点的 ocssd.bin 进程出现
了问题,并重启该节点。
脑裂:
集群的网络心跳丢失,但是磁盘心跳正常。当脑裂出现后,集群会分裂成为若干个子
集群。对于这种情况的出现,集群需要进行重新配置。
重新配置的基本原则:节点数多的子集群存活,如果子集群包含的节点数相同,那么
包含最小编号节点的子集群存活。
四:网络心跳 misscount 和磁盘心跳 disktimeout 查询及设置
misscount用来定义集群网络心跳的超时时间,默认值是 30s当集群中的一个或多个节点
连续丢失网络心跳超过 misscount 时间后,集群需要进行重新配置,某一个或多个节点需要
离开集群。在 11gR2 版本的集群,这个值也是节点本地心跳超时时间,因为本地心跳和网
络心跳是由相同的线程发送的。
查询网络心跳 NHB misscount
[root@node1 ~]# crsctl get css misscount;
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.
查询磁盘心跳 DHB disktimeout
[root@node1 ~]# crsctl get css disktimeout;
of 23
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜