节点被Evict后crsctl check cluster显示online但资源全OFFLINE,是因CSSD未完成心跳协商导致CRS资源卡在“已注册未加入通信环”中间态,需逐层验证私网、HAIP、OCR及Voting Disk连通性与配置一致性。
节点被Evict后crsctl check cluster显示online但资源全OFFLINE
这不是集群没起来,而是节点卡在“已注册但未真正加入通信环”的中间态。ohas(ohasd)进程可能已启动,但cssd无法完成心跳协商,导致crsd、evmd等核心资源始终处于offline。常见于os升级、ocr路径变更或私网短暂中断后强行重启节点。
-
crsctl stat res -t里所有资源状态为OFFLINE,但crsctl check cluster返回CRS-4537(CSS online) - 检查
crsctl get css misscount和crsctl get css disktimeout,确认值与集群其他节点一致;若不一致,说明本地CSS参数残留 - 查
/var/log/oracle/crsd.log或$GRID_HOME/log/<hostname>/cssd/ocssd.log,搜索node join failed或reconfiguration timeout - 不要直接
crsctl start crs——它会复用旧状态,大概率再次失败
强制清理本地CRS元数据:停服务、删socket、重置olr.loc
节点隔离后,ohasd常因OCR/Voting Disk状态残留而假死。报CRS-4640: Oracle High Availability Services is already active却无实际进程,就是典型表现。
- 先确认真实进程:
ps -ef | grep ohasd,若无输出,说明服务根本没跑起来 - 强制停止并清理:
crsctl stop crs -f(必须加-f),再删掉/var/tmp/.oracle/NP*所有socket文件 - 检查
/etc/oracle/olr.loc是否指向有效路径,比如olrconfig_loc=/u01/app/12.1.0/grid/cdata/<hostname>;若OS升级后该文件被覆盖或权限变为root:root,ohasd会静默失败 - 执行
roothas.pl -deconfig -force——它只清本地HAS配置,不影响其他节点,且是重装前必须步骤
重加入前必须验证的三项底层连通性
调大misscount或重启cssd不能绕过网络和存储层问题。90%的“重加入失败”其实卡在更底层。
- 私网连通性:
ping -c 5 <private_ip_of_other_node>只是基础,必须用traceroute -n <private_ip>看路径是否稳定;若丢包率>5%,优先查NIC offload:ethtool -K <priv_nic> gro off lro off - HAIP可用性:RAC 11.2.0.2+强制使用HAIP(
169.254.x.x),ip a | grep 169.254应有输出;若没有,crsctl start res ora.cluster_interconnect.haip会失败 - 防火墙白名单:firewalld必须放行三类地址——所有
PUBLIC IP(含VIP/SCAN)、所有PRIVATE IP、整个169.254.0.0/16网段;漏一个HAIP就可能导致OCR同步卡住
root.sh重复运行失败:检查checkpoint和OCR路径一致性
从12c开始root.sh支持断点续传,但依赖ckptGridHA_${nodename}.xml和OCR中记录的状态。若OCR磁盘组不可访问或路径错配,脚本会卡在“first-node operations not completed”。
- 查checkpoint位置:
$ORACLE_BASE/crsdata/$HOSTNAME/crsconfig/ckptGridHA_$HOSTNAME.xml,确认<step>标签值是否合理 - OCR路径是否仍指向旧设备?比如
/dev/mapper/vg_ocr-lv_ocr在OS升级后被重命名为/dev/mapper/vg_ocr-lv_ocr_new,需手动更新/u01/app/grid/crsdata/<node>/crsconfig_params中CRS_OCR_LOCATIONS - 若OCR磁盘组由ASM管理,先确保
ora.asm资源已ONLINE:crsctl start res ora.asm,再运行root.sh - 别跳过
crsctl replace votedisk——单节点跑完root.sh不会自动向其他节点注册Voting Disk
ohasd起来了,只要cssd收不到其他节点的磁盘心跳(比如ASM磁盘组IO延迟高),或者本地gipcd.bin进程因内核参数net.core.somaxconn被重置而无法建立连接,就会无限循环在joining cluster状态。必须一层层验证,不能只盯着CRS日志。


















