技术开发 频道

Oracle RAC入门和提高

  第三方集群

  在Oracle9i中,除了Windows和Linux,在安装RAC之前必须先安装vendor clusterware,即第三方集群,包括IBM的HACMP, HP的ServiceGuard for oracle RAC, Sun cluster,Veritas SFRAC等,这一类的集群软件为Oracle RAC提供了下面的功能:

  (1)共享的逻辑卷管理或者集群文件系统用于存放数据文件;

  (2)提供了统一的集群的成员组管理;

  (3)使用更健壮的SCSI-3 PGR机制来防止心跳故障(即裂脑split brain)导致的数据损坏,这种功能一般叫做IO fencing;

  (4)提供效率更高的、更低延迟的心跳网络用于cache fusion,可以相对减少TCP/IP的开销,包括:

  HP SGeRAC: HMP (Hyper Messaging Protocol),

  Sun Cluster: RSM (Remote Shared Memory),

  Veritas SFRAC: LLT (low-latency transport),

  Compac True Cluster: RDG (reliable data grams);

  通常如果要使用第三方集群的心跳协议,需要将$ORACLE_HOME/lib/libskgxpX.so文件替换为第三方集群

  软件提供的libskgxpX.so文件(其中X代表Oracle版本号9/10/11),skgxp 是System Kernel Generic Interface Inter-Process Communications的缩写,是oracle开放的一个应用接口,用于传输GCS和GES 的数据。Oracle自带的libskgxp文件定义的传输协议是UDP/IP。

  (5)提供扩展的容灾方案,例如campus cluster/metro cluster/extended RAC;如下图, 以Veritas的SFRAC为例,它提供两种Oracle Extended RAC方案,方案一是使用Veritas Volume Manager对底层阵列进行镜像,提供同城容灾级别的实时数据保护;方案二使用GCO/VVR对数据库进行数据复制,可以实现距离更远、超过10km广域网的容灾;

  (6)Veritas SFRAC 还提供了以下特性:

  补充的Oracle ODM,可以使Oracle同时拥有文件系统的易管理和裸设备的性能;

  标准的多路径软件(DMP),不需要再安装其他软件就可支持绝大多数磁盘阵列,在异构SAN环境中有更好的兼容性;

  从Oracle10g起,Oracle提供了自己的集群软件,叫Oracle clusterware简称CRS,这个软件是安装oracle rac的前提,而上述第三方集群则成了安装的可选项 。同时提供了另外一个新特性叫做ASM,可以用于RAC下的共享磁盘设备的管理,还实现了数据文件的条带化和镜像,以提高性能和安全性 (S.A.M.E: stripe and mirror everything ) ,不再依赖第三方存储软件来搭建RAC系统。

  那么Oracle是如何识别第三方集群的呢?

  在安装完第三方集群后,会在特定目录下生成Oracle RAC接口文件,这个文件的作用就是上面的第二点功能:集群成员管理信息(cluster membership 简称CM)。在HPUX下该文件是/opt/nmapi/nmapi2/lib/pa20_64,在AIX/Solaris/Linux下这个文件是/opt/ORCLcluster/lib/libskgxn2.so 。

  当安装CRS的的检查阶段,就会检测是否有该文件,如果有的话,在安装CRS过程中生成一个软连接文件,文件名是ligskgxn2.so,指向上面的libskgxn2.so或pa20_64文件,这个软连接的位置在CRS_HOME/lib/目录;如果没有第三方集群,那么CRS安装过程中生成自己的libskgxn2.so文件。换句话说,在有第三方集群存在的情况下,CRS的集群成员信息是来自于第三方集群,两套集群的成员信息保持一致和同步;没有第三方集群情况时,CRS自己管理成员信息。

  通过查询$CRS_HOME/log/hostname/cssd/ocssd.log可以看到css识别到的第三方集群,下面的例子分别是HACMP、SFRAC、SunCluster、ServiceGuide :

  [CSSD]2008-05-27 15:09:43.456 [1029] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/IBM AIX skgxn)

  [CSSD]2008-12-30 21:44:56.172 [1029] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/Veritas Cluster Server MM

  [CSSD]2007-08-10 02:19:39.572 [3] >TRACE: clssnm_skgxninit: initialized skgxn version (2/2/Oracle Solaris UDLM)

  [CSSD]2006-09-29 18:57:53.323 [5] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/Hewlett-Packard SKGXN 2.0)

  在9i/8i中没有css/crs,该信息可以在后台进程lmon的trace文件中得到(在bdump中);

  在安装Oracle 9i RAC/8i OPS的过程中,Oracle识别集群方法类似。

  在多个平台上,如果两个节点没有正确链接libskgxn2文件,可能会导致第二个实例无法mount或出现ORA-600错误。

  Oracle支持的RAC环境

  因为Oracle RAC本身比较复杂,在安装和管理中可能会遇到各种问题,涉及到OS、RDBMS、Cluster软件和网络、主机、存储等硬件,为了避免不必要的问题发生,在安装之前,我们需要确认安装环境是否满足要求,包括软件和硬件两方面,尤其是Vendor clusterware和OS 的版本的兼容性需要注意,可以从metalink中得到最新的Oracle官方认证信息:登陆Metalink.oracle.com 选择 Certify,选择by product,选择real application server,选择对应平台就可以得到。下面列出一些关于硬件和平台支持的常见问题:

  官方不支持的:Vmware, Sun LDOM ,Solaris Local Container/Zones

  官方支持的: IBM LPAR, IBM VIOS(Virtual IO Server), Solaris Global Containers

  RHEL GFS , ISCSI,

  私有网络(心跳线)的支持: 不支持使用交叉线,支持 Infiniband RDS (10gR2之后)

  异构环境:支持不同的硬件、但相同的软件(OS/Oracle)组成的集群,不支持32位与64位系统间的集群

  目前支持的NFS的server包括:

  EMC Celerra

  Fujitsu Filer NR1000 Series

  IBM N Series

  NetApp FAS, F, G Series

  Pillar Data Systems Axiom 500

  Sun StorageTek 5000 Series

0
相关文章