RAC解决单节点报 CRS-4047: No Oracle Clusterware components configured.

修复Oracle Clusterware组件配置错误
在遇到CRS-4047错误后,通过执行`/app/grid/product/11.2.0/grid/root.sh`重置并重新配置集群服务,成功解决了Oracle Clusterware组件未配置的问题。在节点2上执行此命令后,所有服务恢复正常,节点间的资源状态也已同步。

 

[root@linux1 install]# ./rootcrs.pl -h 
Unknown option: h 
Usage: 
      rootcrs.pl [-verbose] [-upgrade | -patch] [-hahome ] 
                 [-paramfile ]  
                 [-deconfig | -downgrade] [-force] [-lastnode] 
                 [-downgrade] [-oldcrshome ] [-version ]   
                 [-unlock [-crshome ]] 
   
      Options: 
       -verbose    Run this script in verbose mode 
       -upgrade    Oracle HA is being upgraded from previous version 
       -patch      Oracle HA is being upgraded to a patch version 
       -hahome     Complete path of Oracle Clusterware home 
       -paramfile  Complete path of file specifying HA parameter values 
       -lastnode   Force the node this is executing on to be considered the 
                   last node of the install and perform actions associated 
                   with configurig the last node 
       -downgrade  Downgrade the clusterware 
       -version    For use with downgrade; special handling is required if 
                   downgrading to 9i. This is the old crs version in the format 
                   A.B.C.D.E (
你遇到的错误信息表明 Oracle Grid Infrastructure(或 Oracle RAC 环境)中的 **Cluster Ready Services (CRS)** 虽然部分组件在运行,但关键的集群通信服务无法正常工作。具体来看: ```bash CRS-4638: Oracle High Availability Services is online CRS-4535: Cannot communicate with Cluster Ready Services CRS-4530: Communications failure contacting Cluster Synchronization Services daemon CRS-4534: Cannot communicate with Event Manager ``` ### 解释: - `CRS-4638`: OHASD(Oracle High Availability Services Daemon)是启动的,说明本地节点的基本高可用服务已运行。 - `CRS-4535`: CRS 代理进程(CRSD)未响应,可能是崩溃、被阻塞或未正确启动。 - `CRS-4530`: CSSD(Cluster Synchronization Services Daemon)通信失败,意味着节点无法与集群同步服务通信 —— 这会导致节点“驱逐”(eviction),是严重问题。 - `CRS-4534`: EVM(Event Manager)无法通信,通常依赖于 CRSD 和 CSSD。 --- ## ✅ 可能原因分析 1. **网络问题**:私有网络(Private Interconnect)故障或配置错误。 2. **OCR/表决磁盘(Voting Disk)不可访问**:存储路径断开、权限问题、ASM 实例异常。 3. **CSSD 进程挂起或崩溃**:常见于资源不足、内核参数设置不当。 4. **时间不同步(NTP/CTSS)**:节点间时间偏差过大导致集群分裂(split-brain)保护机制触发。 5. **防火墙或 SELinux 干扰**:阻止了必要的端口通信。 6. **节点已被驱逐出集群**:因心跳丢失等原因。 7. **Grid Infrastructure 损坏或升级失败**。 --- ## ✅ 排查和解决步骤 ### 步骤 1:检查本地 CRS 组件状态 ```bash crsctl check crs ``` > 输出如上所示,确认问题范围。 --- ### 步骤 2:查看各守护进程状态 ```bash ps -ef | grep cssd ps -ef | grep crsd ps -ef | grep ohasd ``` 你应该看到以下进程存在且属于 `grid` 用户: - `/etc/init.d/init.ohasd run` (OHASD) - `cssdagent`, `cssdmonitor`, `ocssd.bin`(CSSD 相关) - `crsd.bin`(CRSD) 如果没有 `ocssd.bin` 或 `crsd.bin`,则这些服务没有启动。 --- ### 步骤 3:手动启动 CSSD(谨慎操作) 如果发现 `ocssd.bin` 没有运行,尝试手动启动: ```bash sudo -u grid $GRID_HOME/bin/crsctl start res ora.cssd -init ``` > 注意:`-init` 表示这是初始化资源(由 OHASD 管理) 也可以重启整个 OHASD(会影响所有 GI 服务): ```bash # 停止 OHASD crsctl stop has # 启动 OHASD crsctl start has ``` 然后再次运行 `crsctl check crs` 查看是否恢复--- ### 步骤 4:检查日志文件 #### 关键日志位置: ```bash $GRID_HOME/log/<hostname>/alert<hostname>.log $GRID_HOME/log/<hostname>/cssd/ocssd.log $GRID_HOME/log/<hostname>/crsd/crsd.log $GRID_HOME/log/<hostname>/ohasd/ohasd.log ``` 例如: ```bash tail -f /u01/app/19.0.0/grid/log/hisrac1/cssd/ocssd.log ``` 搜索关键词:`FATAL`, `reboot`, `misscount`, `timeout`, `communication failure` --- ### 步骤 5:检查私网通信(心跳网络) 确保私有网络接口正常工作,并且可以与其他节点 ping 通。 ```bash # 查看私网配置 oifcfg getif # 示例输出应类似: # eth1 192.168.1.0 private # eth2 10.10.1.0 cluster_interconnect ``` 测试对等节点的私网连通性: ```bash ping <peer_node_private_ip> ``` 检查是否启用了 IP forwarding 或 MTU 不匹配等问题。 --- ### 步骤 6:检查表决磁盘和 OCR 状态 ```bash # 检查表决磁盘状态 crsctl query css votedisk # 检查 OCR 状态 ocrcheck ``` 预期输出应该是“ONLINE”并且能读取成功。若显示“PROT-xx”错误,则表示 OCR 访问有问题。 --- ### 步骤 7:检查时间同步 ```bash date ntpq -p # 如果使用 NTP ``` 或者检查 CTSS 状态: ```bash crsctl check ctss ``` 如果是 `Active`(使用 NTP),没问题;如果是 `Observer`,说明时间同步由 CTSS 管理,需确认是否偏差大。 --- ### 步骤 8:检查防火墙和 SELinux 临时关闭防火墙测试: ```bash systemctl stop firewalld systemctl disable firewalld setenforce 0 ``` 并确保开放以下端口(根据版本略有差异): - UDP/TCP: 12345 (CSS), 2013 (CRS), 9625 (EVM) - ASM: 1521 - Database: 1521, 5500, 5520 等 --- ### 步骤 9:强制重新加入集群(最后手段) 如果本节点已被踢出集群,可尝试重置并重启: ⚠️ 警告:这可能导致短暂服务中断! ```bash # 停止 CRS crsctl stop has -f # 清除当前节点信息(危险!仅用于重建) # 注意不要在主节点执行此命令 $GRID_HOME/crs/install/rootcrs.sh -deconfig -force # 重新配置 $GRID_HOME/crs/config/config.sh ``` 或从集群中删除该节点后再添加。 --- ## ✅ 总结建议 | 项目 | 检查点 | |------|--------| | ✅ 日志 | `ocssd.log`, `crsd.log`, `alert.log` | | ✅ 进程 | `ocssd.bin`, `crsd.bin` 是否运行 | | ✅ 存储 | OCR/Voting Disk 是否可访问(ASM 正常?) | | ✅ 网络 | 私网互通、无丢包、MTU一致 | | ✅ 时间 | NTP/CTSS 正常同步 | | ✅ 防火墙 | 关闭或放行必要端口 | --- ### 示例:修复流程摘要 ```bash # 1. 查看状态 crsctl check crs # 2. 查看进程 ps -ef | grep ocssd # 3. 尝试重启 OHASD crsctl stop has crsctl start has # 4. 查看日志 tail -100f $GRID_HOME/log/hisrac1/cssd/ocssd.log # 5. 查询投票盘 crsctl query css votedisk # 6. 检查 OCR ocrcheck ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值