Oracle 11gR2 RAC CRS-4535错误解决方法

作者:技术拾光时间:2026-06-25 08:28:01浏览:185

CRS-4535错误的根源在于crsd因底层依赖缺失而无法启动。应先检查私网连通性、OCR与VotingDisk可达性及ASM实例状态,再针对问题修复。11.2.0.1版本存在启动卡死bug需特殊处理。注意该错误常伴随CSSD单节点运行,问题必在跨节点通信或共享存储层面。

先说一个核心判断:CRS-4535 的本质不是 crsd 进程崩溃,而是它压根没能启动——因为底层依赖断了。所以,别一上来就暴力执行 crsctl start crs,那样大概率无效,甚至会让集群状态进一步恶化。正确的做法是:先确认私网、OCR/Voting Disk、ASM 实例这三块是否就绪,再对症下药。 Oracle 11gR2 RAC CRS-4535错误解决方法

检查私网心跳连通性与配置一致性

OCR 和 CSSD 的运转高度依赖私网通信,丢包、高延迟、MTU 不一致或者防火墙拦截,都会让 cssd.bin 无法正常启动,进而导致 crsd.bin 无法完成注册。所以,私网是第一道坎。

  • 用 ping -I 双向测试,要求延迟 ≤5ms——别拿默认路由的 ping 结果来敷衍。
  • 检查 ifconfig 中私网接口的 mtu 值,所有节点必须完全一致,推荐统一设为 1500,避免因分片导致通信异常。
  • 临时关闭防火墙:RHEL5/6 用 service iptables stop,RHEL7+ 用 systemctl stop firewalld。别指望它是无辜的,很多诡异问题都出在这里。
  • 别忘了 /etc/hosts:每个节点的 public、private、scan 名称都要正确定义,不能有重复或解析冲突,否则 CSSD 会迷失方向。

验证 OCR 和 Voting Disk 的可达性与权限

crsd 启动之前必须能读写 OCR 和 Voting Disk。路径不可达、权限不对、ASM 磁盘组没有 mount——任意一条都会触发 CRS-4535。

  • 先跑 ocrcheck -config 看看 OCR 配置路径,再用 crsctl query css votedisk 确认投票盘是不是 ONLINE。这两步是最基础的健康检查。
  • 切换到 grid 用户,执行 asmcmd lsdg,重点盯住 OCR 所在磁盘组的 state 是否为 MOUNTED、offline_disks 是否为 0、usable_file_mb 是否大于 0。这三个条件缺一不可。
  • 检查设备权限:ls -l /dev/mapper/ocr* 应该看到属主是 grid:asmadmin。如果不一致,就同步 udev 规则并重载。
  • 另外,别忽略 ocrconfig -showbackup——如果备份路径不可写(比如 NFS 挂载点异常),也有可能阻塞启动。这种边缘情况常被人忽略。

确认 ASM 实例和 ora.crsd 资源状态

即使 OCR 磁盘组已经 mount,ASM 实例本身也可能没启动,或者 ora.crsd 资源卡在 INTERMEDIATE 或 OFFLINE 状态——这时候手动拉起毫无意义。

  • 用 ps -ef | grep asm_pmon 确认 ASM 实例进程是否存在。如果没有,尝试 srvctl start asm -n 启动。
  • 运行 crsctl stat res ora.crsd -init,状态不是 ONLINE 就别急着 start。先去查日志:$ORACLE_HOME/log//crsd/crsd.log。
  • 日志里常见的线索:ORA-15077 表示 ASM 实例不可达,CLSF-00100 多指向 OCR 设备路径访问失败。
  • 如果 crsd.log 显示反复尝试连接 ASM 但超时,优先用 asmcmd 试试能不能 ls 出 OCR 目录,而不要只看磁盘组状态就下结论。

避免 11.2.0.1 版本特有的启动卡死问题

Oracle 11.2.0.1 GI 有一个知名 bug:首次 crsctl start crs 可能卡住不动,实际上是 ohasd 在等一个命名管道就绪,需要人工干预才能继续。

  • 在 root 用户下执行 ./crsctl start crs 之后,立即另开一个终端,运行:/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1。
  • 这个命令会阻塞几秒,完成后原终端通常立刻显示 CRS-4123 成功信息。
  • 注意:这个操作只适用于 11.2.0.1;升级到 11.2.0.4+ 可以彻底避免。
  • 但务必记住:这个修复不能跳过前面的三步诊断——如果私网不通或 OCR 不可达,dd 命令也救不回来。

最后说一个最容易让人误判的情况:CRS-4535 报错时,crsctl check crs 往往显示 CRS-4529(CSSD online)和 CRS-4533(EVM online)都正常,于是很多人以为“只有 crsd 有问题”。实际上,这恰恰说明 CSSD 已经退守为单节点模式,不再尝试集群协调——根源一定出在跨节点通信或共享存储层面,而不是 crsd 自身二进制文件损坏。别在错误的方向上浪费时间。