游乐游手机版
首页/数据库/文章详情

Oracle 11gR2 RAC中常见CRS-4535错误完整详细排查与解决实操步骤指南

时间:2026-06-27 06:52
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 是否为 MOUNTEDoffline_disks 是否为 0usable_file_mb 是否大于 0。这三个条件缺一不可。
  • 检查设备权限:运行 ls -l /dev/mapper/ocr*,应看到属主为 grid:asmadmin。若不一致,需要同步 udev 规则并重新加载。
  • 另外,不要忽略 ocrconfig -showbackup——如果备份路径不可写(例如 NFS 挂载点异常),也可能阻塞启动流程。这种边界情况经常被忽略。

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

即使 OCR 磁盘组已经 mount,ASM 实例本身也可能尚未启动,或者 ora.crsd 资源卡在 INTERMEDIATEOFFLINE 状态——此时手动拉起并无意义。

  • 使用 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 尝试列出 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 自身二进制文件损坏。不要在错误的方向上浪费时间。

来源:https://www.php.cn/faq/2693274.html
上一篇Spark是否完全兼容Hive全部功能深度探讨 下一篇SQL递归视图处理层级组织架构数据
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
如何在PostgreSQL 16中创建带安全限定符的SQL视图详细教程
数据库 · 2026-06-27

如何在PostgreSQL 16中创建带安全限定符的SQL视图详细教程

先说几个核心判断:PostgreSQL 16 的安全视图,不是靠某个内置参数或语法开关就能一劳永逸解决的。它需要一套组合拳来保障——权限、schema 隔离、行级策略,少一个都不行。 PostgreSQL 16 安全视图的“三重卡死”机制 PostgreSQL 16 本身并不支持带参数的视图。

SQL视图定义中为何不建议使用SELECT * 而应明确列名
数据库 · 2026-06-27

SQL视图定义中为何不建议使用SELECT * 而应明确列名

从语法层面来看,在SQL视图定义中使用SELECT *本身并不构成语法错误。然而,从数据库设计与架构优化的角度审视,这种做法几乎等同于主动放弃了对于输出结果集的精确掌控——视图一旦创建,其列名、列顺序以及列数量理应是明确且固定的,而*通配符却让这一切变成了运行时才揭晓的未知数。视图列结构会因底层表变

SQL Server GROUP BY非聚合列报错解决方法
数据库 · 2026-06-27

SQL Server GROUP BY非聚合列报错解决方法

SQL Server 对查询的模糊性零容忍,态度极为明确。一旦 SELECT 列表中包含非聚合列且该列未被 GROUP BY 子句引用,SQL Server 便会立即抛出“列名无效”错误,绝不妥协、猜测或回退。这种严格虽然让新手感到棘手,但也迫使开发者正视查询语义的边界。 然而,许多开发者在遭遇此错

利用SQL嵌套查询检查日期区间重叠有效性
数据库 · 2026-06-27

利用SQL嵌套查询检查日期区间重叠有效性

好的,我将以一位资深数据库专家的视角,对原文进行人性化重写,保留所有核心信息、逻辑结构与图片,同时去除AI腔调,让语言更自然、有节奏,并谨慎控制第一人称的使用。 --- 日期区间重叠检查,这事儿的坑比想象的多。写 SQL 时,很多人总想着先写个函数或者建个临时表来比对,其实没必要——直接上自连接加个

Oracle 12c RAC环境下RMAN恢复共享数据文件
数据库 · 2026-06-27

Oracle 12c RAC环境下RMAN恢复共享数据文件

在RAC环境下使用RMAN恢复共享数据文件,很多DBA第一次遇到时都会感到棘手:备份文件明明完整,执行RESTORE DATABASE却报ORA-01102或ORA-01507。别紧张,这并非命令错误,而是RAC的共享存储与多实例并发机制与RMAN恢复流程存在根本性的不兼容。 RMAN在RAC下无法