crs-4537表示oracle high availability services未启动,需先执行ps -ef | grep ohasd确认进程是否存在,再检查/etc/oracle/olr.loc路径有效性及权限(应为644),最后手动crsctl start ohasd并验证crsctl check crs返回crs-4638。

crsctl check crs 报 CRS-4537,说明底层高可用框架根本没起来,别急着启动 CRS,先确认 ohasd 进程是否存活、/etc/oracle/olr.loc 是否指向有效路径。
crsctl check crs 报 CRS-4537:先查 ohasd 是否运行
这个错误不是 CRS 资源启不动,而是整个 Oracle High Availability Services 框架压根没加载。所有 crsctl 命令都依赖本地 ohasd 进程通信,它挂了,后续全瘫。
- 立刻执行
ps -ef | grep ohasd—— 若无输出,说明ohasd没启动,跳过crsctl start crs - 检查
/etc/oracle/olr.loc文件是否存在且可读:cat /etc/oracle/olr.loc,内容应类似olrconfig_loc=/u01/app/19c/grid/cdata/olr.ocr;路径不存在、权限为 600(非 644)、或指向空目录都会导致静默失败 - 手动启动:
sudo /u01/app/19c/grid/bin/crsctl start ohasd,之后必须立即跑crsctl check crs验证,看到CRS-4638: Oracle High Availability Services is online才算过关
crsctl start crs 卡在 ora.cssd 或超时:OCR/voting disk 不可达
ora.cssd 是集群心跳核心,不依赖数据库,但强依赖 OCR 和 voting disk 的磁盘组已 MOUNTED、路径一致、权限正确。卡在这里,90% 是存储层问题。
- 用
asmcmd lsdg查 OCR 所在磁盘组(如OCRVOTE)状态 —— 若是DISMOUNTED,需先sqlplus / as sysasm执行ALTER DISKGROUP OCRVOTE MOUNT - 运行
crsctl query css votedisk,确认输出路径(如+OCRVOTE或/dev/mapper/mpathb)在所有节点上都能被root用户读取,且ls -l显示属主为grid:oinstall、权限为660(裸设备)或644(NFS) - 检查私网连通性:
olsnodes -n应列出全部节点编号;若某节点缺失,查$GRID_HOME/log/<hostname>/cssd/ocssd.log</hostname>中IPC Send timeout或Failed to connect to CSS daemon,大概率是防火墙拦了 UDP 12345 端口,或私网网卡 down
crsctl stat res -t 显示 ora.asm ONLINE INTERMEDIATE:ASM 实例起来了但挂不了盘
这表示 ora.asm 进程已拉起,但无法访问 OCR 或 voting disk 对应的 ASM 磁盘组。最常被忽略的是多路径设备映射不一致,或 ASMLIB 设备名错位。
- 在每个节点分别执行
ls -l /dev/asm*或ls -l /dev/mapper/*,确认 OCR/voting 盘的 WWID 和权限完全一致(属主grid:oinstall,权限660) - 若用了 ASMLIB,确保
oracleasm listdisks输出与crsctl query css votedisk中路径严格一致;否则 CSSD 根本找不到盘 - 检查
udev规则是否生效:ls -l /dev/disk/by-id/下对应盘符是否指向同一块物理盘;多路径环境下,不同节点映射到不同 WWID 是常见坑
ORA-27154 / ORA-27300 类错误:残留 IPC 资源未清理
Oracle 11g–19c RAC 启动报 ORA-27154、ORA-27300、ORA-27301 或日志里出现 failed to create shared memory segment,基本锁定为 System V IPC(共享内存段和信号量)残留。
- 先停 CRS:
crsctl stop crs(以 root),确保ps -ef | grep pmon无输出 - 清理内存段:
ipcs -m | awk '$5 == "oracle" {print $2}' | xargs -I {} ipcrm -m {};同理清理信号量:ipcs -s | awk '$5 == "oracle" {print $2}' | xargs -I {} ipcrm -s {} - 切勿用
ipcs -a | ipcrm—— 会误删 PostgreSQL、WebLogic 等其他应用的 IPC 资源 - 清理后执行
ipcs -m -s确认输出为空,再启动;若仍报错,检查/etc/sysctl.conf中kernel.shmmax和kernel.shmall是否 ≥ SGA 最大值,且所有节点参数一致
ohasd 是否真起来了、OCR 磁盘组是否真 MOUNTED、多路径设备是否真映射一致——这些点不验证清楚,重跑 root.sh 或重启服务器只会把问题藏得更深。











