当前位置:  数据库>oracle

Oracle RAC集群简介

    来源: 互联网  发布时间:2017-04-20

    本文导语: 对于RAC来说,最重要的还是要理解内部原理和体系结构。安装不是非常难的事情。排错和维护都离不开体系结构以及内部原理。 集群分类 1、高性能计算 计算任务分配到不同计算机节点来提高整体计算能力,主要应用在科学计...

对于RAC来说,最重要的还是要理解内部原理体系结构。安装不是非常难的事情。排错和维护都离不开体系结构以及内部原理。

集群分类

1、高性能计算

计算任务分配到不同计算机节点来提高整体计算能力,主要应用科学计算领域。主要利用的是并行计算。

2、负载均衡集群(LB)

业务负载流量尽可能的平均合理的分配到集群的各个节点上,每个节点都可以处理一部分负载,并且可以根据负载情况进行动态的平衡。负载均衡算法不是简单的平均,而是根据每个节点的可用资源网络的特殊情况来进行优化分配。因此分配+合理才是负载均衡的核心。

3、高可用性(HA

侧重于提高系统的可用性,集成硬件软件的容错性来实现整体服务的高可用性。如果某个节点发生故障,另外的节点代替他。

RAC是真正的LB和HA的复合体。从某种意义上说,只有最终应用(数据库)才能实现真正意义上的LB,而绝大多数的集群都是HA。

集群环境的特殊问题

1、并发控制

集群环境中,存在共享存储的问题。集群中各个节点对共享存储是对等的,所有节点对数据有相同的访问权限,因此需要某种机制来控制节点对数据的访问。

在RAC中,采用的是DLMDistribute 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的集群使用的就是这种机制。

无论软件还是硬件,大致原理就是:正常节点通过某种方式告知故障节点,故障节点会进行重启。告知的方式有硬件和软件之分,硬件更加安全一些。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux Oracle RAC内核参数
  • 配置Oracle RAC需要注意的问题
  • Oracle RAC 10.2.0.1升级到10.2.0.4
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • Oracle10201 RAC升级到10204后导出数据时报EXP-00056错误
  • 与Oracle RAC相关的连接配置写法实例
  • [Oracle] RAC 之 - 负载均衡深入解析
  • 如何在RAC环境下修改Oracle字符集
  • Oracle RAC 状态检查
  • Linux Oracle10.2.0 RAC配置注意问题
  • redhat 5.5全新安装oracle rac的问题[1000分]
  • Oracle 10201 RAC升级到10204
  • oracle 11g RAC 常用命令整理分享
  • Redflag Linux安装Oracle 10gR2 RAC记事
  • Oracle10g RAC for Linux配置全过程
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,