对于RAC来说,最重要的还是要理解内部原理和体系结构。安装不是非常难的事情。排错和维护都离不开体系结构以及内部原理。
集分类
1、高性能计算
计算任务分配到不同计算机节点来提高整体计算能力,主要应用在科学计算领域。主要利用的是并行计算。
2、负载均衡集(LB)
把业务的负载流量尽可能的平均合理的分配到集的各个节点上,每个节点都可以处理一部分负载,并且可以根据负载情况进行动态的平衡。负载均衡算法不是简单的平均,而是根据每个节点的可用资源或网络的特殊情况来进行优化分配。因此分配+合理才是负载均衡的核心。
3、高可用性(HA)
侧重于提高系统的可用性,集成硬件和软件的容错性来实现整体服务的高可用性。如果某个节点发生故障,另外的节点代替他。
集环境的特殊问题
负载均衡的理解
1、并发控制
集环境中,存在共享存储的问题。集中各个节点对共享存储是对等的,所有节点对数据有相同的访问权限,因此需要某种机制来控制节点对数据的访问。在RAC中,采用的是DLM(Distribute Lock Management)机制来进行实例间的并发控制。
2、健忘症(Amnesia)
如果集环境的配置文件不是集中存放,每个节点都有一个本地副本,集正常运行的时候,用户可以在任何节点修改集的配置,并且这些更改都会自动同步到其他节点。
如果节点1因为正常的维护需要关机,节点2修改了配置,然后关闭节点2.启动节点1,因为之前节点2做的配置修改没有同步到节点1,所以将节点1启动以后,他仍然使用旧的配置文件,造成配置丢失。
3、脑裂(split brain)
集中,节点之间需要通过某种机制(心跳)了解彼此的健康情况,以确保各个节点协调工作。假设只是心跳出现故障,各个节点还在正常的工作,每个节点都认为其他节点宕机,自己是整个集的唯一健在者,因此需要获得整个集的“控制权”。存储是共享的,这就意味着灾难,这种情况就是“脑裂”。
投票算法可以解决这个问题
通过表决磁盘判定,获得表决磁盘多得节点将强制另外一个节点重启。
4、IO隔离(IO Fencing)、
集出现故障,必须判断哪个节点应该获得集的控制权,那些节点需要被踢出。这时投票需要解决的问题。
仅仅将他们踢出还不足够,因为他们可能还在继续运行(只是离开了这个集),需要保证他们不再访问共享数据。这就是IO隔离要解决的问题。
IO Fencing实现有硬件和软件方式。各个集厂商使用的方式不同,有些需要硬件的支持(主要是存储设备是否支持某些协议)。Oracle RAC使用的是软件的方式,直接重启故障节点。
无论采用哪种方式,IO Fencing的目的就是保证故障节点不能继续访问共享数据。
无论软件还是硬件,大致原理就是:正常节点通过某种方式告知故障节点,故障节点会进行重启。告知的方式有硬件和软件之分,硬件更加安全一些。
存储层
RAC是一个多实例、单数据库的系统。数据文件、联机日志文件、控制文件等存储在共享存储上。经常使用的存储:例如EMC、NETAPP、IBM、HP等。每个服务器通过HBA卡和光纤线连接到存储上。
实例指的是SGA和Background Process组成的运行时环境,是一个动态的概念,数据库特指数据文件、控制文件、日志文件等这些物理上存在的文件。Oracle数据库实例和数据库是n:1的关系,单实例中,因为两者是1:1的关系,两者的区别没有被提及。RAC环境中,会有多个实例,而数据库只有一份,必须区分这两个概念。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。