Public NIC接入公共网络,private NIC接入私有网络,这是个完全隔离的网络传递的数据只是RAC节点的心跳数据和cache fusion数据。oracle不建议私有网络直接用交叉线连接。
RAC最重要的是共享存储。数据文件、联机日志、控制文件、参数文件都必须放在共享存储上。现在的存储环境基本上都是基于SAN的,跑FC协议(FC协议封装了SCSI协议)。
RAC环境需要OS必须版本相同包括小版本、补丁包都必须一致。
集群件安装在OS之上,负责管理整个集群环境中的硬件资源并为上层的RAC集群提供基础服务。如果把集群看成是一台虚拟的计算机,那么集群件就是这台计算机上的OS,而RAC是运行在其上的一个应用。
10g之前,oracle只针对linux、windows两个OS提供了一个不完善的集群件产品OCM(oracle cluster manager),其它平台需要第三方集群产品比如HACMP、sun cluster。
10g开始,10.1版本提供CRS,10.2版本提供oracle clusterware(10.1的改名)。10.2开始的集群件提供API接口,因此还能够为其它软件提供HA功能。CRS可以和其它集群件产品集成。10g之前oralce只提供对裸设备的支持,所以9i RAC裸设备是常见选择。10后oracle提供OCFS和ASM两种存储方案。
OEL(oracle enterprise linux)是oracle在RHEL基础上重新开发出的linux。
需要强调的是,10g的clusterware的vote disk、ocr在目前的版本上还只能创建在裸设备、ocfs上。VIP在clusterware安装过程中创建(调用VIPCA),不需要手工设置。
集群的分类:高性能计算集群(用在科学计算)、LB、HA。
健忘症:集群环境配置文件不是集中存放,每个节点都有一个本地副本,用户修改任何节点的集群配置会将更改同步到其它节点。但这样有一个问题:节点1正常维护需要关闭,然后在节点2修改了配置,然后节点2关闭,启动节点1,由于没有同步,所以节点1启动后,它用的仍然是旧的配置文件,这时就造成配置丢失,这就叫健忘症。RAC的解决方案是OCR。
脑裂:节点间了解彼此的健康状况是通过心跳机制来实现的。如果仅仅是心跳出了问题,各节点还正常运行,这时每个节点都认为其它节点宕机,自己是集群环境的唯一健在者自己应该获得集群的控制权,因为存储是共享的,这意味着数据灾难。这就叫脑裂。RAC解决脑裂的方法是引入Quorum disk,谁先得到quorum disk这一票谁获胜,另一个节点被踢出集群。
IO隔离:解决被踢出集群的节点不能操作共享存储上的数据。
CRS resource:CRS对运行于其上的应用进行监视,并在发生异常时进行重启、切换等干预手段。这些被CRS监控的对象就叫CRS resource。这些resource是在RAC安装过程中自动或手动创建的,并且注册登记到CRS中,以metadata的形式被记录在OCR磁盘上,这些metadata包括resource的名称、如何启动、停止、如何检查健康状况等配置信息。RAC的CRS resource包括GSD、ONS、VIP、database、instance、listener等。