RAC 默认的心跳走的是UDP协议,这个从启动的时候alert.log里就可以看到,使用infiniband交换机的可以走RDS协议,好处就是可以减少50%左右的CPU利用率,但是前提是你完成以下工作
The following are the generic steps for implementation of RDS over infiniband, refer to the next section for platform specific information:
1 After installing Infiniband HCAs (Host Channel Adaptors) and switches, install the required Infiniband drivers and RDS support libraries on each clustered server. Verify with platform specific command that the infiniband interface appears in the available interface list. For example on Linux, using "ifconfig -a" check infiniband interface like ib0 or ib1 is listed.
2 Configure the appropriate failover and load balancing mode for multiple ports of a HCA and/or between multiple HCAs.
3 Before using RDS for RAC interconnect, it is recommended to use IPoIB for RAC interconnect to check the hardware installation.
4 Once RAC operation is verified over IPoIB, rebuild RAC IPC library for RDS by performing the following as oracle software owner OS user.
5 $ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk ipc_rds ioracle
For non-shared ORACLE_HOME, the above commands must be run on each node of the RAC cluster.
If you use multiple Oracle home setup (like ASM running from different Oracle Home or different databases running from different Oracle Homes, then this step needs to be performed for all the homes.
To revert back RAC to use UDP instead of RDS, then RAC IPC library for UDP by performing the following as oracle software owner OS user.
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk ipc_g ioracle
Update /etc/hosts and run oifcfg as required to restore the desired cluster interconnect
如果没有完成这步
install the required Infiniband drivers and RDS support libraries on each clustered server
你会遇到如下错误
$ make -f ins_rdbms.mk ipc_rds ioracle
rm -f /u01/app/oracle/product/10.2.0/db_1/lib/libskgxp10.so
cp /u01/app/oracle/product/10.2.0/db_1/lib//libskgxpr.so /u01/app/oracle/product/10.2.0/db_1/lib/libskgxp10.so
cp: cannot access /u01/app/oracle/product/10.2.0/db_1/lib//libskgxpr.so: No such file or directory
*** Error exit code 1