Oralcle RAC组件学习

来源:互联网 发布:ubuntu安装软件中心 编辑:程序博客网 时间:2024/05/12 03:18

Oralcle RAC

一、集群高可用性

1.     集群

集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,而用户不会意识到集群系统的底层节点。更详细的说,集群(一组协同工作的计算机)是充分利用计算资源的一个重要概念,因为它能够将工作负载从一个超载的系统(或节点)迁移到集群中的另一个系统上。

Cluster集群技术有以下优点:

l  高可扩展性

l  高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效

l  高性能:负载平衡集群允许系统同时接入更多的用户

l  高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统

2.     集群系统的分类

根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统分为两类:

l  高可用(High Availability)集群,简称HA集群。

这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。负载均衡集群:使任务可以在集群中尽可能平均地分摊不同的计算机进行处理,充分利用集群的处理能力,提高对任务的处理效率。    

 

l  性能计算(High Perfermance Computing)集群,简称HPC集群,也称为科学计算集群。    

在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的数据分布到多台的计算机上,利用这些计算机的共同资源来完成计算任务,从而可以解决单机不能胜任的工作(如问题规模太大,单机计算速度太慢)。这类集群致力于提供单个计算机所不能提供的强大的计算能力。如天气预报、石油勘探与油藏模拟、分子模拟、生物计算等。

3.     高可用性

计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:MTTF/(MTTF+MTTR)*100%

HA(HighAvailability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。   

高可用性(High Availability)提供了一种最小化网络中由于单点故障而带来的风险的方法。例如对于部署防火墙的企业,从网络安全方面考虑,所有进出信息流都必须经过防火墙。这时防火墙就是一个单点故障。对于很多企业来说,长时间的服务中断(或许就几分钟)是不可接受的,这就引入了高可用性的需求。随着网络应用的增多和服务实时性需求的增加,用户对高可用性的需求也越来越强。作为网络中单点故障设备,防火墙有必要提供高可用性解决方案。

4.     HA三种工作方式

主从方式 (非对称方式)

主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。

双机双工方式(互备互援)

两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。

集群工作方式(多服务器互备方式)

多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

 

二、Oracle RAC 工作原理

RAC是realapplication clusters的缩写,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。

在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。

逻辑结构上看,每一个参加集群的节点有一个独立的instance(数据库实例),这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache

原创粉丝点击