天天看点

大话RAC-RAC体系结构

RAC 是Real Application Cluster通过集群的方式来提高高可用性的一种实现。通过RAC可以提供高性能的低成本的解决方案,RAC是架构在共享存储机制上的,和单实例的 Oracle数据库实例不同,RAC里是多实例的,集群的节点上的每个节点都有自己的实例,有各自的SGA和进程。但是他们共享数据库的数据文件。

每个实例通过自己独立的instance,访问相同的数据库存储区,有自己的SGA和BG Process,通过每个节点的clusterware软件来进行每个节点间的通信,从而逻辑上形成一个统一的集群环境透明与客户端。

在RAC里有几个特别重要的东西,

1. CRS也就是Clusterware,这个是每个节点进行通信的基础,CRS的进程包括

CRSD 集群资源服务

CSSD 集群同步服务

EVMD 事件管理服务

OPROD 节点检测监控

CRS(Clusterware)通过这里的一些进程来管理,监控和相互通信在各节点中,通过crs,集群可以监控到节点的健康状况从而 failover到另外一个节点上,这些都是CRS的功能,这里有会引出另外的概念,由于所有节点都是很通过CRS来进行管理和协调的,在RAC的处理 中,把每个节点上的信息,比如,database instance listener, asm, vip等一些nodeapps的资源注册到ocr信息里,这样不管节点是允许还是crash的,RAC集群都可以很清楚的指导相关的信息,从而进行切换和 其他的功能,包括启动,关闭,维护等等工作. 这里的ocr的概念,与之平行的是vote disk信息.也就是对共享区域访问的一些协调性的信息.

2. 共享存储

RAC需要有共享存储. 这里提供共享存储的方式有不同的方式,在我有篇总结RAC的存储方案里有总结性的介绍,这里就不详细研究了. 在共享存储的基础上,需要把一些相关的信息存在共享区域里,既然是共享区域,当然就是一些需要共享的信息,独立于实例之外的信息,比如上面我们提到的 ocr和votedisk,以及我们的数据文件的存储都是需要在这个共享存储里的.

在我们探讨RAC的时候,经常会讲到什么OCFS,OCFS2,RAW,ASM等这样的一些东东,其实有很多人刚刚了解RAC的时候经常会被这里 这一系列的名词给折腾的不知云里雾里叻,包括我刚刚接触到RAC的时候, 不过也是的,这里有很多网上的大师,经常写一些有关RAC安装的文章,其实无非就是把Oracle的文档给翻译了一下而已,对着Oracle的文档就可以 了,他们这些翻译者的文章远远没有Oracle的文档标准. 在他们的文章当中都是stepby step的操作,完全没有体系和结构的介绍,无端端的引入这样几个东东,当然就把大家给搞的不知所云了,其实有很多的作者,看他们的安装很搞笑的,其实他 们虽然是安装成功了,但是其实没有明白RAC的体系是怎样的,所以他们的安装规划都是不合理的,都完全是颠覆了RAC的体系结构.

OCFS和OCFS2简单讲就是一个文件系统而已,和NFS一样,提供一种集群环境中的共享存储的文件系统. 从他的名字里就可以看的出来

Oraclecluster file system.

RAW 裸设备 也是一种存储方式 是Oracle的RAC里支持存储方式,在9i之前,OPT/RAC的支持只能使用这样的方式, 也就是把共享存储映射到RAW device,然后把ORacle需要的数据选择Raw device存储着,但是RAW相对于文件系统来说,不直观,不便于管理,而且RAW device有个数的限制,这样RAW显然需要有新的方案来替代,这样就有了OCFS这样的文件系统,当然,这只是Oracle自己的实现的集群文件系统 而已,还有其他厂商提供的文件系统也可以作为存储的选择方案.

ASM叻,仅仅只是数据库存储的方案而已,并不是cluster的方案,所以这里ASM应该是区别于RAW和OCFS/OCFS同一级别的概 念,RAW和OCFS/OCFS不仅可以作为数据库存储的方案,同时也作为Clusterware里的存储方案,是CRS里需要的storage,而 ASM仅仅作为数据库的存储而已,严格来说仅仅是RAC中的一个nodeapps而已.ASM对于Clusterware安装时需要的ocr和 votedisk这两个还不支持,毕竟ASM本身就需要一个实例,而CRS是完全架构在实例之外的,这也就是为什么使用了ASM的方案,却总是还要加上 OCFS/OCFS2和RAW其中的一个的原因.