再议RAC Brain Split脑裂

简介:
这2天在面试DBA Candidate的时候,我问到Oracle RAC中Brain Split脑裂决议的一些概念, 几乎所有的Candidate都告诉我当"只有2个节点的时候,投票算法就失效了,会让2个节点去抢占Quorum Disk,最先获得的节点将活下来" 。 我们姑且把这套理论叫做" 抢占论"。 "抢占论"的具体观点可能与下面这一段文字大同小异:  
"在集群中,节点间通过某种机制(心跳)了解彼此的健康状态,以确保各节点协调工作。 假设只有"心跳"出现问题, 各个节点还在正常运行, 这时,每个节点都认为其他的节点宕机了, 自己是整个集群环境中的"唯一建在者",自己应该获得整个集群的"控制权"。 在集群环境中,存储设备都是共享的, 这就意味着数据灾难, 这种情况就是"脑裂"  解决这个问题的通常办法是使用投票算法(Quorum Algorithm). 它的算法机理如下: 观点1:  集群中各个节点需要心跳机制来通报彼此的"健康状态",假设每收到一个节点的"通报"代表一票。对于三个节点的集群,正常运行时,每个节点都会有3票。 当结点A心跳出现故障但节点A还在运行,这时整个集群就会分裂成2个小的partition。 节点A是一个,剩下的2个是一个。 这是必须剔除一个partition才能保障集群的健康运行。  对于有3个节点的集群, A 心跳出现问题后, B 和 C 是一个partion,有2票, A只有1票。 按照投票算法, B 和C 组成的集群获得控制权, A 被剔除。     观点2:  如果只有2个节点,投票算法就失效了。 因为每个节点上都只有1票。 这时就需要引入第三个设备:Quorum Device. Quorum Device 通常采用饿是共享磁盘,这个磁盘也叫作Quorum disk。 这个Quorum Disk 也代表一票。 当2个结点的心跳出现问题时, 2个节点同时去争取Quorum Disk 这一票, 最早到达的请求被最先满足。 故最先获得Quorum Disk的节点就获得2票。另一个节点就会被剔除。"

    以上这段文字描述中观点1 与我在<Oracle RAC Brain Split Resolution> 一文中提出的看法其实是类似的。



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278147

相关文章
|
11月前
|
Oracle 关系型数据库 数据库
一次解决RAC实例状态为“Stuck Archiver”的经历
一个客户反映Oracle数据库恢复后,有一个数据文件报错
219 0
|
存储 前端开发 关系型数据库
rac Storage Split 会发生什么现象?
ASM STRONG SPLITE,asm 存储分裂,grid,asm
2138 0
|
SQL 并行计算 Oracle
|
存储 文字识别 监控
|
机器学习/深度学习 文字识别 Oracle