设为首页 收藏本站
查看: 515|回复: 0

[经验分享] Oracle RAC集群简介

[复制链接]

尚未签到

发表于 2018-9-22 13:58:25 | 显示全部楼层 |阅读模式
  对于RAC来说,最重要的还是要理解内部原理和体系结构。安装不是非常难的事情。排错和维护都离不开体系结构以及内部原理。
  集群分类
  1、高性能计算
  计算任务分配到不同计算机节点来提高整体计算能力,主要应用在科学计算领域。主要利用的是并行计算。
  2、负载均衡集群(LB)
  把业务的负载流量尽可能的平均合理的分配到集群的各个节点上,每个节点都可以处理一部分负载,并且可以根据负载情况进行动态的平衡。负载均衡算法不是简单的平均,而是根据每个节点的可用资源或网络的特殊情况来进行优化分配。因此分配+合理才是负载均衡的核心。
  3、高可用性(HA)
  侧重于提高系统的可用性,集成硬件和软件的容错性来实现整体服务的高可用性。如果某个节点发生故障,另外的节点代替他。
  RAC是真正的LB和HA的复合体。从某种意义上说,只有最终应用(数据库)才能实现真正意义上的LB,而绝大多数的集群都是HA。
  集群环境的特殊问题
  1、并发控制
  集群环境中,存在共享存储的问题。集群中各个节点对共享存储是对等的,所有节点对数据有相同的访问权限,因此需要某种机制来控制节点对数据的访问。
  在RAC中,采用的是DLM(Distribute Lock Management)机制来进行实例间的并发控制。
  2、健忘症(Amnesia)
  如果集群环境的配置文件不是集中存放,每个节点都有一个本地副本,集群正常运行的时候,用户可以在任何节点修改集群的配置,并且这些更改都会自动同步到其他节点。
  如果节点1因为正常的维护需要关机,节点2修改了配置,然后关闭节点2.启动节点1,因为之前节点2做的配置修改没有同步到节点1,所以将节点1启动以后,他仍然使用旧的配置文件,造成配置丢失。
  3、脑裂(split brain)
  集群中,节点之间需要通过某种机制(心跳)了解彼此的健康情况,以确保各个节点协调工作。假设只是心跳出现故障,各个节点还在正常的工作,每个节点都认为其他节点宕机,自己是整个集群的唯一健在者,因此需要获得整个集群的“控制权”。存储是共享的,这就意味着灾难,这种情况就是“脑裂”。
  投票算法可以解决这个问题
  每个节点会在投票区记录自己的票数(自己收到了多少节点的心跳,一个心跳是一票),各个节点会读取其与节点的票数。
  如果一个集群分成了两个partition,一个partition是3个节点,一个partition是2个节点。那么3个节点的partition里面所有的节点的票数都是3,两个节点的partition里面所有节点的票数都是2.拥有两个节点的partition会被踢出,自动重启。如果两个partition的节点都相同,那么第一个控制投票区的partiton将会存活,另外一个partition将会被踢出而重启,这种情况通常是master节点(一般是第一个启动的节点)所在的partition将会存活。
  4、IO隔离(IO Fencing)、
  集群出现故障,必须判断哪个节点应该获得集群的控制权,那些节点需要被踢出。这时投票需要解决的问题。
  仅仅将他们踢出还不足够,因为他们可能还在继续运行(只是离开了这个集群),需要保证他们不再访问共享数据。这就是IO隔离要解决的问题。
  IO Fencing实现有硬件和软件方式。各个集群厂商使用的方式不同,有些需要硬件的支持(主要是存储设备是否支持某些协议)。Oracle RAC使用的是软件的 方式,直接重启故障节点。
  无论采用哪种方式,IO Fencing的目的就是保证故障节点不能继续访问共享数据。
  有一些存储设备支持SCSI Reserve/Release命令,正常节点使用SCSI Reserve命令锁住存储设备,故障节点发现存储被锁定,就知道自己已经被踢出了cluster,自行重启,这种机制叫做自杀机制(suicide)。例如Sun和Veritas的集群使用的就是这种机制。
  无论软件还是硬件,大致原理就是:正常节点通过某种方式告知故障节点,故障节点会进行重启。告知的方式有硬件和软件之分,硬件更加安全一些。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-599956-1-1.html 上篇帖子: Oracle 10g RAC On Linux Using NFS-candon123 下篇帖子: Linux平台Oracle安装脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表