Oracle RAC 故障诊断详解
Oracle RAC 故障诊断详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
RAC 故障诊断保证集群稳定[1]:
详细见:Oracle RAC 架构深度解析、Oracle Cluster Health Monitor 详解。
2. 常见故障
2.1 节点驱逐
- 节点被驱逐
- 集群重配置
- 业务影响
2.2 网络故障
- Private 网络中断
- Cache Fusion 影响
- 性能
2.3 存储故障
- ASM 磁盘故障
- Voting/OCR
- 集群停
2.4 资源故障
- 数据库
- 实例
- 服务
- 监听器
3. 诊断工具
3.1 crsctl
crsctl check crs
crsctl check cluster -all
crsctl stat res -t
3.2 srvctl
srvctl status database -d prod
srvctl status nodeapps
srvctl status asm
3.3 TFA
tfactl diagcollect -oreason "rac"
详细见:Oracle Trace File Analyzer 详解。
4. 节点驱逐
4.1 原因
- 网络心跳失败
- 磁盘心跳失败
- 节点 hang
- 资源不足
4.2 分析
- CHM 数据
- alert log
- cssd.log
- ocssd.log
4.3 修复
- 修复根因
- 重启节点
- 重新加入
5. 网络故障
5.1 Private
- HAIP 故障
- 网卡故障
- 交换机
5.2 诊断
# 检查
ifconfig -a
ping node2-priv
crsctl stat res -t | grep haip
5.3 影响
- Cache Fusion
- gc 等待
- 性能
6. 存储故障
6.1 ASM
- 磁盘故障
- Disk Group
- Voting/OCR
6.2 诊断
SELECT group_number, name, state FROM v$asm_diskgroup;
SELECT group_number, disk_number, mount_status, state
FROM v$asm_disk;
6.3 修复
- 替换磁盘
- Rebalance
- 恢复
7. Voting Disk
7.1 故障
- 少数故障:继续
- 多数故障:集群停
7.2 诊断
crsctl query css votedisk
7.3 修复
crsctl add css votedisk /dev/newvote
crsctl delete css votedisk /dev/badvote
8. OCR
8.1 故障
- OCR 损坏
- 集群配置丢失
8.2 诊断
ocrcheck
ocrconfig -showbackup
8.3 恢复
ocrconfig -restore /u01/ocr.bak
9. 数据库故障
9.1 实例
- 实例崩溃
- 自动重启
- 服务切换
9.2 诊断
srvctl status database -d prod
srvctl status instance -d prod -i prod1
9.3 alert log
- $ORACLE_BASE/diag/rdbms/...
- 检查错误
- 分析
10. 性能诊断
10.1 Cache Fusion
SELECT event, time_waited FROM v$system_event
WHERE event LIKE 'gc%' ORDER BY time_waited DESC;
10.2 AWR
@?/rdbms/admin/awrrpt.sql
10.3 ASH
SELECT * FROM v$active_session_history WHERE ...;
详细见:Oracle RAC 性能调优。
11. 日志
11.1 Clusterware
- $GI_HOME/log/node1/crsd/crsd.log
- $GI_HOME/log/node1/cssd/cssd.log
- $GI_HOME/log/node1/evmd/evmd.log
11.2 ASM
- $GI_HOME/log/node1/asm/asm.log
11.3 数据库
- $ORACLE_BASE/diag/rdbms/.../trace/alert_*.log
12. CHM 分析
12.1 节点驱逐前
$GI_HOME/bin/chmdbg.sh -last 1h
12.2 OS 资源
- CPU
- 内存
- 网络
- 磁盘
12.3 分析
- 资源耗尽
- 进程
- 根因
详细见:Oracle Cluster Health Monitor 详解。
13. 常见错误
13.1 ORA-29740
- 节点驱逐
- 检查网络
- 修复
13.2 ORA-15032
- ASM 操作失败
- 检查
- 修复
13.3 ORA-29701
- 无法通信
- 集群
- 检查
14. 预防
14.1 监控
- 实时
- 告警
- 自动
14.2 演练
- 故障场景
- 验证
- 改进
14.3 文档
- 配置
- 流程
- 故障
15. 最佳实践
- CHM:启用
- TFA:使用
- 监控:实时
- 日志:检查
- 网络:冗余
- 存储:冗余
- 演练:故障
- 文档:记录
- 自动化:告警
- 分析:根因
16. 参考资料
[1] Oracle Clusterware Administration and Deployment Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/cwali/