不能。srvctl start vip失败主因是节点间public/private网卡名不一致,clusterware硬性拒绝启动vip;需用oifcfg getif核对并统一底层命名,且online状态不等于真实绑定,须通过ifconfig -a和ip neigh verify。
srvctl start vip失败:网卡名不一致直接拦停
oracle rac要求所有节点的public和private网卡设备名必须完全一致,否则srvctl start vip会报invalid interface "en1" entered in an input argument这类错误。这不是警告,是硬性拒绝——vip资源根本不会尝试启动。
常见场景是:节点1用en1作公网卡,节点2却用了en2;或者AIX上节点1是en0/en1,节点2是en0/en2。即使ifconfig -a都能看到对应IP,Clusterware在解析oifcfg getif输出时就会卡住。
- 检查命令:
$GRID_HOME/bin/oifcfg getif,对比各节点输出是否完全相同 - 修复方式不是改配置,而是统一底层网卡命名:Linux下靠
/etc/udev/rules.d/70-persistent-net.rules绑定MAC与名称;AIX下需确认lsdev -Cc adapter和/etc/path_to_inst中驱动实例顺序一致 - 别信“通配符能绕过”——虽
root.sh可能跑完,但后续srvctl add vip或监听器注册必出问题
crsctl stat res -t显示ONLINE ≠ VIP真绑定了
看到ora.rac1.vip状态是ONLINE,不代表它已成功绑定到网卡。很多故障表现为VIP能ping通但数据库连不上,根源是ARP缓存、防火墙拦截或绑定接口未激活。
真实绑定状态得看操作系统层:ifconfig -a里必须出现该VIP地址(如10.48.186.99),且对应网卡flags含UP和RUNNING。若没出现,说明Clusterware声称“启动成功”,实际被内核拒绝了。
- 典型干扰项:网卡启用了
arp_ignore/arp_announce(Linux)或arp_keepalive(AIX),导致VIP无法响应ARP请求 - 检查命令:
ip neigh show | grep <vip_ip></vip_ip>(Linux)或arp -a | grep <vip_ip></vip_ip>(AIX),确认邻居表里有且可达 - 临时验证:手动
ifconfig en8:1 10.48.186.99/24(替换为实际网卡),再ping——若通,说明是Clusterware绑定逻辑问题,不是网络物理层问题
grid用户/tmp权限缺失导致VIP校验直接退出
runcluvfy.sh stage -pre crsinst在预检阶段,只要发现grid用户对任一节点的/tmp无写权限,就会立即报错退出,不继续往下走。这个检查点常被忽略,因为人本能觉得/tmp“谁都能写”。但RAC安装过程会在/tmp下放临时socket、锁文件和校验缓存,权限不对就断在第一步。
- 验证方式:
ssh node2 "sudo -u grid touch /tmp/cluvfy_test",任一节点失败即不通过 - 注意:不是root或oracle用户权限,必须是grid用户;也不是
/tmp属主问题,是grid对该目录的w位权限 - 修复后务必重跑整个
runcluvfy.sh,它不支持跳过已失败项
VIP漂移失败常因listener.ora与gv$configured_interconnects不一致
VIP漂移后连接失败,90%不是VIP没动,而是新节点上的监听器压根不认这个IP。根本原因是listener.ora里ADDRESS段写的IP,和数据库视图gv$configured_interconnects返回的不一致——比如listener.ora写的是10.48.186.99,而gv$configured_interconnects里查出来是10.48.186.102。
这种不一致多发生在硬件变更后(如更换网卡),有人手工改了listener.ora却忘了同步集群元数据,或用srvctl modify nodeapps改了地址但没触发监听器重读配置。
- 查真实配置:
sqlplus / as sysasm -S - 查监听器当前监听地址:
lsnrctl status LISTENER_<nodename></nodename>,看Listening Endpoints Summary...里有没有对应VIP - 修复动作:先
srvctl stop listener -node <node></node>,再按gv\$结果更新$GRID_HOME/network/admin/listener.ora,最后srvctl start listener
真正难排查的从来不是VIP“没漂”,而是它“漂了但没人接”。重点盯死oifcfg getif输出、ifconfig实时结果、gv$configured_interconnects三者是否咬合,其余都是表象。











