本文转自ITPUB上一兄弟总结,以备查询。

今天一早来,同事说他周末在安装 rac 出问题了,始终无法使用vipca 创建 vip资源 , 叫我帮忙看看。

他用的是 vmware server 2.0 搭建 虚拟 rac 。

一. 环境如下 
OS: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
KERNEL : 2.6.18-164.el5
clusterware: clusterware 10.2.0.1


1. 我首先查看了他的 $ORA_CRS_HOME/bin 下的 vipca 文件, 是否消除 LD_ASSUME_KERNEL 。
    一看,果然没有消除。
    于是 export LD_ASSUME_KERNEL 的后一行 添加 unset LD_ASSUME_KERNEL  ,后保存 。

2. 再次执行 vipca ,但还是无法执行 报错,于是到 $ORA_CRS_HOME/cfgtoollogs/vipca/ 下查看日志 。
vipca.log
=====================================================================================================
[main] [8:14:50:226] [VipCA.setDefaultTrace:321]  trace log file is not null
[main] [8:14:50:226] [VipCA.getNodeList:1210]  VIPCA: GetNodeList
[main] [8:14:50:274] [GetActiveNodes.create:213]  Going into GetActiveNodes constructor...
[main] [8:14:50:285] [HASContext.getInstance:190]  Module init : 16
[main] [8:14:50:285] [HASContext.getInstance:214]  Local Module init : 19
[main] [8:14:50:338] [Library.getInstance:95]  Created instance of Library.
[main] [8:14:50:339] [Library.load:195]  Loading libsrvmhas10.so...
[main] [8:14:50:339] [Library.load:201]  oracleHome null
[main] [8:14:50:339] [Library.load:236]  Loading  library srvmhas10 from path=
/opt/oracle/products/crs/jdk/jre/lib/i386/client:/opt/oracle/products/crs/jdk/jre/lib/i386:/opt/oracle/products/crs/jdk/jre/../lib/i386:/opt/oracle/products/crs/lib:/opt/oracle/products/crs/srvm/lib:
[main] [8:14:50:418] [Library.load:244]  Loaded library srvmhas10 from path=
/opt/oracle/products/crs/jdk/jre/lib/i386/client:/opt/oracle/products/crs/jdk/jre/lib/i386:/opt/oracle/products/crs/jdk/jre/../lib/i386:/opt/oracle/products/crs/lib:/opt/oracle/products/crs/srvm/lib:
[main] [8:14:50:420] [has.HASContextNative.Native]  prsr_trace: no lsf ctx, line=Native: allocHASContext
[main] [8:14:50:420] [has.HASContextNative.Native]
allocHASContext: Came in
[main] [8:14:50:422] [has.HASContextNative.Native]
....
[main] [8:14:50:613] [OCRTreeHA.listInterfaceNames:1774]  OCR does not have any global interfaces set
[main] [8:14:50:613] [OCRTreeHA.listInterfaceNames:1779]  Releasing shared CSS lock SRVM.SYSTEM.css.interfaces
[main] [8:14:50:614] [has.ClusterLockNative.Native]  prsr_trace: Native: unlock
[main] [8:14:50:615] [Cluster.extractInterfaces:1560]  ifType = 4
[main] [8:14:50:615] [Cluster.extractInterfaces:1561]  ipType = 0
[main] [8:14:50:615] [VipCA.getInterfaces:599]  No public interfaces found in OCR. Getting interfaces from OS
[main] [8:14:50:617] [HASContext.getInstance:190]  Module init : 32
[main] [8:14:50:617] [HASContext.getInstance:214]  Local Module init : 32
[main] [8:14:50:617] [has.HASContextNative.Native]  prsr_trace: Native: allocHASContext
[main] [8:14:50:618] [has.HASContextNative.Native]
allocHASContext: Came in
[main] [8:14:50:618] [has.HASContextNative.Native]  prsr_trace: Native: prsr_initCLSR
[main] [8:14:50:620] [has.HASContextNative.Native]
allocHASContext: CLSR context [1]
[main] [8:14:50:620] [has.HASContextNative.Native]
allocHASContext: retval [1]
[main] [8:14:50:620] [HASContext.getInstance:249]  HAS Context Allocated: 4 to [url=mailtoracle.ops.mgmt.has.VIP@16fd0b7]oracle.ops.mgmt.has.VIP@16fd0b7[/url]
[main] [8:14:50:620] [VIP.:69]  VIP Instance created.
[main] [8:14:50:622] [has.VIPNative.Native]  prsr_trace: Native: listNetInterfaces
[main] [8:14:51:691] [has.VIPNative.Native]  prsr_trace: prsr_setCLSRError: 3 -- Error 0

[main] [8:14:51:692] [has.VIPNative.Native]  prsr_trace: prsr_setCLSRError: 3 -- Error 0
[main] [8:14:51:692] [has.VIPNative.Native]  prsr_trace: prsr_throwException: oracle/ops/mgmt/has/HASContextException[Error 0--Native: listNetInterfaces]
[main] [8:14:51:698] [VipCA.runApplication:2891]  oracle.ops.vipca.VipCA.getInterfaces(VipCA.java:614)
oracle.ops.vipca.VipCA.processGUIArgs(VipCA.java:452)
oracle.ops.vipca.VipCA.runApplication(VipCA.java:2841)
oracle.ops.vipca.VipCA.main(VipCA.java:3147)
=========================================end============================================================
看了一会,发现其中 OCR does not have any global interfaces set 这个提示。
于是我怀疑是他的网络设置问题。

3. 用 设置网络,解决问题。
用oifcfg  查看的他网络
[root@node1 db]# oifcfg getif ;
没有显示信息,证明他的网络根本没设置好。

在查看 /etc/hosts
# The public network address for rac node1 and node2 .
192.168.100.101  node1  # --> n1
192.168.100.102  node2  # --> n2
# The private network address for rac n1 and n2 .
10.10.10.11     node1-priv #--> n1
10.10.10.12     node2-priv #--> n2
# The virtral network address for rac n1 and n2 .
192.168.100.41   node1-vip
192.168.100.42   node2-vip

添加网络
[root@node1 db]# oifcfg iflist
eth0  192.168.100.0
eth1  10.10.10.0
eth2  172.24.121.128

[root@node1 db]# oifcfg setif -global eth0/192.168.100.0ublic
[root@node1 db]# oifcfg setif -global eth0/10.10.10.0:cluster_interconnect
[root@node1 db]# oifcfg getif
eth0  192.168.100.0  global  public
eth1  10.10.10.0  global  cluster_interconnect


再次执行 vipca 成功。