crs-4537 错误表明本地节点无法连接 crs,需先检查 ohasd 进程是否运行;若未运行,确认 /etc/oracle/olr.loc 路径正确后执行 crsctl start ohasd,并用 crsctl check crs 验证。
crsctl check cluster 报 “crs-4537: cannot communicate with cluster ready services” 怎么办
这个错误说明本地节点完全没连上 CRS(Cluster Ready Services)进程,不是资源启动失败,而是底层通信断了。优先检查 ohasd 进程是否存活:ps -ef | grep ohasd
如果没输出,说明 Oracle 自启动框架根本没起来。此时不要急着跑 crsctl start crs,先确认 /etc/oracle/olr.loc 文件存在且内容指向正确的 OCR 本地副本路径(如 olrconfig_loc=/u01/app/19c/grid/cdata/olr.ocr),再手动启动:sudo /u01/app/19c/grid/bin/crsctl start ohasd
启动后立刻用 crsctl check crs 验证,别跳步。
crsctl start crs 执行后卡住或报 CRS-2672: Attempting to start 'ora.cssd'
CSSD(Cluster Synchronization Services)是 RAC 的心跳和集群成员管理核心,它依赖 OCR 和 voting disk 的可访问性。常见卡点有三个:
- OCR 设备(ASM 磁盘组或裸设备)未上线:运行
asmcmd lsdg 看 STATE 是否为 MOUNTED;若为 DISMOUNTED,先用 sqlplus / as sysasm 手动 ALTER DISKGROUP OCRVOTE MOUNT;
- voting disk 路径不可达:执行
crsctl query css votedisk,输出的路径必须能被所有节点通过相同路径访问(比如都走 ASM 或都走 NFS),且权限为 root:oinstall、644
- 网络心跳异常:检查
olsnodes -n 是否能列出所有节点及编号,若某节点缺失,查 /u01/app/19c/grid/log/<hostname>/cssd/ocssd.log</hostname> 中 “IPC Send timeout” 类错误,大概率是私网不通或防火墙拦截 UDP 12345 端口
crsctl stat res -t 显示 ora.asm ONLINE 但状态为 INTERMEDIATE
这表示 ASM 实例已启动,但无法挂载 OCR 或 voting disk 对应的磁盘组。最常被忽略的是磁盘权限问题:RAC 启动时要求所有 OCR/voting 磁盘在各节点上拥有完全一致的主组(oinstall)、属主(grid)和权限(660)。用 ls -l /dev/asm* 或 ls -l /dev/mapper/* 检查,尤其注意多路径设备(multipath)在不同节点上是否映射到同一 WWID。另外,如果用了 ASMLIB,确保 oracleasm listdisks 输出与 crsctl query css votedisk 中路径一致,否则 CSSD 会找不到盘。
crsctl stop crs 失败并提示 CRS-2501: Resource ‘ora.cssd’ is not registered
这不是命令失效,而是 CRS 栈已经严重损坏——CSSD 进程崩溃且注册信息从 OCR 中丢失。此时不能反复执行 crsctl start crs,会加重 OCR 冲突。正确做法是:先用 ps -ef | grep d.bin 确认所有 crsd.bin、cssd.bin、evmd.bin 进程已彻底退出;然后清理内存残留:sudo /u01/app/19c/grid/bin/crsctl stop has -f
;最后强制重置 OCR 本地缓存:sudo /u01/app/19c/grid/bin/ocrconfig -local -manualbackup
,再启动。注意:-local 参数仅用于单节点故障恢复,多节点必须用 -repair 模式,否则 OCR 元数据不一致。
OCR 和 voting disk 的物理可达性永远比配置文件里的路径字符串更重要。哪怕 crsctl query 能返回结果,只要底层存储 I/O 延迟超过 2 秒,CSSD 就会主动驱逐节点——这种问题不会直接报错,只会表现为间歇性 CRS-2674 或 ORA-15064。
- OCR 设备(ASM 磁盘组或裸设备)未上线:运行
asmcmd lsdg看STATE是否为MOUNTED;若为DISMOUNTED,先用sqlplus / as sysasm手动ALTER DISKGROUP OCRVOTE MOUNT; - voting disk 路径不可达:执行
crsctl query css votedisk,输出的路径必须能被所有节点通过相同路径访问(比如都走 ASM 或都走 NFS),且权限为root:oinstall、644 - 网络心跳异常:检查
olsnodes -n是否能列出所有节点及编号,若某节点缺失,查/u01/app/19c/grid/log/<hostname>/cssd/ocssd.log</hostname>中 “IPC Send timeout” 类错误,大概率是私网不通或防火墙拦截 UDP 12345 端口
crsctl stat res -t 显示 ora.asm ONLINE 但状态为 INTERMEDIATE
这表示 ASM 实例已启动,但无法挂载 OCR 或 voting disk 对应的磁盘组。最常被忽略的是磁盘权限问题:RAC 启动时要求所有 OCR/voting 磁盘在各节点上拥有完全一致的主组(oinstall)、属主(grid)和权限(660)。用 ls -l /dev/asm* 或 ls -l /dev/mapper/* 检查,尤其注意多路径设备(multipath)在不同节点上是否映射到同一 WWID。另外,如果用了 ASMLIB,确保 oracleasm listdisks 输出与 crsctl query css votedisk 中路径一致,否则 CSSD 会找不到盘。
crsctl stop crs 失败并提示 CRS-2501: Resource ‘ora.cssd’ is not registered
这不是命令失效,而是 CRS 栈已经严重损坏——CSSD 进程崩溃且注册信息从 OCR 中丢失。此时不能反复执行 crsctl start crs,会加重 OCR 冲突。正确做法是:先用 ps -ef | grep d.bin 确认所有 crsd.bin、cssd.bin、evmd.bin 进程已彻底退出;然后清理内存残留:sudo /u01/app/19c/grid/bin/crsctl stop has -f
;最后强制重置 OCR 本地缓存:sudo /u01/app/19c/grid/bin/ocrconfig -local -manualbackup
,再启动。注意:-local 参数仅用于单节点故障恢复,多节点必须用 -repair 模式,否则 OCR 元数据不一致。
OCR 和 voting disk 的物理可达性永远比配置文件里的路径字符串更重要。哪怕 crsctl query 能返回结果,只要底层存储 I/O 延迟超过 2 秒,CSSD 就会主动驱逐节点——这种问题不会直接报错,只会表现为间歇性 CRS-2674 或 ORA-15064。
crsctl start crs,会加重 OCR 冲突。正确做法是:先用 ps -ef | grep d.bin 确认所有 crsd.bin、cssd.bin、evmd.bin 进程已彻底退出;然后清理内存残留:sudo /u01/app/19c/grid/bin/crsctl stop has -f;最后强制重置 OCR 本地缓存:
sudo /u01/app/19c/grid/bin/ocrconfig -local -manualbackup,再启动。注意:-local 参数仅用于单节点故障恢复,多节点必须用 -repair 模式,否则 OCR 元数据不一致。 OCR 和 voting disk 的物理可达性永远比配置文件里的路径字符串更重要。哪怕
crsctl query 能返回结果,只要底层存储 I/O 延迟超过 2 秒,CSSD 就会主动驱逐节点——这种问题不会直接报错,只会表现为间歇性 CRS-2674 或 ORA-15064。










