当前位置: 首页
数据库
Oracle 12c RAC常见ORA-29701集群错误解决方案

Oracle 12c RAC常见ORA-29701集群错误解决方案

热心网友 时间:2026-06-28
转载

ORA-29701 错误的核心原因并非数据库层面的配置失误,而是底层集群同步服务或高可用服务尚未完成初始化。在 Oracle 12c RAC 环境中遭遇此错误时,直接重启实例或修改数据库参数通常无效。正确的解决思路应是优先确认并修复 ohas/css 的存活状态——这是问题的根本所在。

如何处理Oracle 12c RAC中常见的ORA-29701集群件错误

验证 ohasd 进程的真实运行状态

crsctl check has 的返回结果有时并不可靠,若 IPC 通信中断,它可能产生假阳性的输出。更可靠的判断方法需要执行以下步骤:

  • 执行 ps -ef | grep ohasd,确认是否存在由 root 用户启动的 /u01/app/12.1.0/grid/bin/ohasd 进程(务必注意路径中的版本号与实际安装版本一致)。
  • 检查 /var/tmp/.oracle/ 目录下是否存在 socket 文件,以及 OCSSD_LL__crs 类型的 socket 是否可正常访问,例如 ls -l /var/tmp/.oracle/OCSSD*
  • 若进程缺失,或 socket 文件为空、属主异常(非 root:root),则说明 OHAS 初始化失败。此步骤不解决,后续对 OCR 的诊断均无意义。

核实 OLR(Oracle Local Registry)是否可用

在 12c RAC 中,集群启动依赖的是 OLR 而非 OCR,OLR 用于定位本地的集群元数据。OLR 失效的常见情形包括:

  • /etc/oracle/olr.loc 文件缺失、权限不是 644,或文件中指向的设备无法读取(例如 olrconfig_loc=+OCR_VOTE 但 ASM 实例尚未启动)。
  • OLR 所在的磁盘组处于离线状态,或执行 ocrcheck -local 时出现错误 “PROT-22: Failed to retrieve data from the local registry”。
  • 手动重建 OLR 前,必须先彻底清除所有残留进程:使用命令 /u01/app/12.1.0/grid/crs/install/rootcrs.pl -deconfig -force -verbose,不应再使用已过时的 roothas.pl

排查私网与 IPC 层级的阻断问题

即便网络可以 ping 通,CSS 仍可能因底层通信失败而报 ORA-29701。此时需要检查以下几个容易忽略的细节:

  • 私网接口的防火墙(firewalld/iptables)是否阻止了 Unix socket 的创建?可通过 getenforce 确认 SELinux 状态,临时设为 permissive 可快速验证。
  • 确认 /dev/shm 挂载正常且空间充足(df -h /dev/shm)。CSS 依赖共享内存段进行通信,此环节不可出错。
  • 查看 $GRID_HOME/log//cssd/ocssd.log,搜索 “IPC connect failed”、“CLSC_” 或 “kgxgncin” 等错误信息。相比 alert.log,该日志能够更早揭示连接失败的根源。

切勿忽视 udump 和 /var/tmp 空间耗尽问题

这并非“罕见的边缘情况”,在 12c 中,它实际上是高频诱因——特别是在启用 SQL Trace、ADDM 或自动任务时。处理思路如下:

  • 执行 df -h /u01/app/oracle/diag/rdbms///tracedf -h /var/tmp。若任一使用率达到 95% 以上,应立即清理旧的 trace 文件,例如使用 find . -name "*.trc" -mtime +7 -delete
  • 特别关注 udump 目录下是否存在单个超过 2GB 的 trace 文件。这种情况常因 DBMS_MONITOR.DATABASE_TRACE_ENABLE 未关闭导致。
  • 清理完空间后,必须重启 ohasd:先使用 kill -9 杀掉残留进程,再运行 /u01/app/12.1.0/grid/bin/crsctl start has

在整个排查过程中,最容易被忽略的步骤是验证 socket 文件权限和 /dev/shm 的状态。它们通常不会直接报错,但会导致 ohasd 静默失败。一旦跳过这两步,后续所有对 OCR 的检查、资源的启动都将建立在无效前提之上,徒劳无功。

来源:https://www.php.cn/faq/2693053.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
配置Java应用支持Oracle数据库AD/Kerberos身份验证

配置Java应用支持Oracle数据库AD/Kerberos身份验证

配置Java应用支持OracleAD Kerberos需正确设置JVM的krb5 conf与jaas conf,JDBCURL添加oracle net authentication_services=(KERBEROS5)并与SPN严格匹配。AD用户需映射为Oracle企业用户并授予CREATESESSION权限。SPN注册和EUS映射是常见故障点。

时间:2026-07-08 07:04
Redis订阅者BGSAVE期间响应变慢:RDB持久化IO影响分析

Redis订阅者BGSAVE期间响应变慢:RDB持久化IO影响分析

Redis订阅者在BGSAVE期间响应变慢,源于fork阻塞、COW内存争抢及磁盘I O高负载三重叠加。通过将RDB迁移至从节点、禁用THP、调整swappiness并手动触发避开高峰,可有效降低对主服务的影响。

时间:2026-07-08 07:03
如何优雅捕获Node.js项目中的MongoDB写入异常

如何优雅捕获Node.js项目中的MongoDB写入异常

批量插入失败时不会抛出统一错误类型,需关注错误代码和写入错误数组。部分失败时可设置有序参数为假以获取写入错误数组。事务中写入失败会自动中止事务,提交事务不会执行。常见错误码11000为唯一键冲突,121为文档验证失败。

时间:2026-07-08 07:03
如何用SQL窗口函数ROW_NUMBER实现分组内去重

如何用SQL窗口函数ROW_NUMBER实现分组内去重

行号函数仅分配行序号,不能直接去重。需通过子查询或公用表表达式过滤行号为1的行,实现分组内去重。若排序字段有重复,应加入唯一键以保证排序稳定性。还需注意不同数据库对空值排序的差异及版本兼容性。

时间:2026-07-08 07:03
Spring Boot RedisTemplate无法直接注入?检查泛型声明是否正确

Spring Boot RedisTemplate无法直接注入?检查泛型声明是否正确

RedisTemplate注入失败多因泛型擦除导致类型不匹配,需保证配置类返回类型、注入字段类型及内部key value类型三者一致。避免使用无泛型或通配符形式,不同序列化策略应定义独立Bean并用@Qualifier区分。StringRedisTemplate为独立Bean,不可混用。

时间:2026-07-08 07:03
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜