根本原因是前置依赖卡死或拒绝响应,最常见为cssd初始化失败,如ocr设备权限不足、grid目录属组错误(须为asmadmin)、asm未就绪或scan解析异常。

Grid Infrastructure启动卡在CRS-4124或长时间无响应
根本原因通常不是“慢”,而是某个前置依赖卡死或拒绝响应,导致ohasd进程无法推进后续组件。最常见的是CSSD(Cluster Synchronization Services)初始化失败,表现为crsctl check crs返回CRS-4535: Cannot communicate with Cluster Ready Services,但CRS-4529和CRS-4533仍显示online——说明OHASD起来了,但CRSD和CSSD没起来。
检查/u01/app/19c/grid/log/<hostname>/cssd/ocssd.log</hostname>,高频线索包括:
-
ORA-29701: unable to connect to Cluster Synchronization Services→ 本质是CSSD找不到OCR设备或权限不足 -
ERROR: cssd: Unable to open OCR device /dev/oracleasm/disks/DISK1: Permission denied→ 属组错配(如grid:oinstall而非grid:asmadmin) - 日志末尾反复出现
Waiting for discovery of configured voting disks→ ASM未就绪或voting disk路径不可达
Grid目录属组错误直接阻断CSSD启动
Oracle 19c GI要求/u01/app/19c/grid目录属组必须为asmadmin(或dba),而非安装时默认的oinstall。属组错配会导致cssdagent以错误用户身份尝试访问ASM磁盘,触发系统级Permission denied,且该错误不会在crsctl输出中明示,只藏在ohasd.log或cssd/ocssd.log里。
验证与修复步骤:
- 运行
ls -ld /u01/app/19c/grid,确认输出中第三字段是asmadmin(不是oinstall) - 运行
id -g grid,确保gid对应asmadmin组(如502),而非oinstall(如501) - 执行
chgrp asmadmin /u01/app/19c/grid,再chmod 750 /u01/app/19c/grid - 重启ohasd:
systemctl restart oracleohasd(或crsctl stop crs && crsctl start crs)
ASM实例未就绪导致CRSD挂起等待
CRSD启动时会主动等待ASM提供OCR和voting disk服务。如果ASM本身因密码过期、磁盘组未mount或密码文件缺失而无法启动,CRSD就会无限期等待,表现为crsctl start crs命令卡住、无报错、无超时。
关键诊断点:
- 执行
srvctl status asm,若返回ASM is not running,立即查asm.log - 检查
$GRID_HOME/dbs/orapw+ASM是否存在且可读(ls -l $GRID_HOME/dbs/orapw+ASM) - 用
sqlplus / as sysasm尝试连接;若报ORA-28001: the password has expired,说明grid用户密码过期 - 注意:不能用
ALTER USER grid IDENTIFIED BY改密码,必须用orapwd重建密码文件并指定sysasm=y
SCAN解析异常或网络延迟拖慢集群仲裁
GI启动后期需完成节点发现和集群仲裁,依赖SCAN DNS解析和私网心跳。若SCAN仅解析到1个IP(应为3个)、私网延迟过高或iptables拦截UDP 123端口(NTP同步),CSSD可能反复重试,导致整体启动耗时从秒级拉长到数分钟甚至失败。
快速验证方式:
- 在各节点执行
nslookup xyzdb-scan(替换为实际SCAN名),确认返回3个A记录 - 用
ping -c 3 -I <private_interface><other_node_private_ip></other_node_private_ip></private_interface>测私网连通性 - 检查
crsctl check cluster -all是否所有节点都显示CRS-4638和CRS-4535共存(说明OHASD起来但CRS通信断) - 临时关闭防火墙:
systemctl stop firewalld,排除规则干扰
真正卡住的地方往往不在表面看到的“启动慢”,而是某个组件静默失败后,其他组件还在空转等待。日志里一句Permission denied或ORA-29701背后,可能关联着属组、密码文件、DNS配置三个独立问题。不逐层翻日志,只盯着crsctl返回码,很容易绕远路。











