Oracle 节点驱逐详解

Oracle 节点驱逐详解

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

节点驱逐(Node Eviction)是 Clusterware 自我保护机制[1]:

详细见:Oracle Clusterware 架构详解Oracle Grid Infrastructure 详解


2. 原因

2.1 网络

- Private 网络故障
- 心跳超时
- Misscount

2.2 磁盘

- Voting Disk 不可达
- 磁盘超时
- Disk Timeout

2.3 节点 hang

- CPU 100%
- 内存耗尽
- 进程 hang

2.4 cssd

- cssd 退出
- 死锁
- 异常

3. 机制

3.1 心跳

- 网络心跳(节点间)
- 磁盘心跳(Voting Disk)
- 超时检测

3.2 Misscount

- 默认 30 秒
- 超时驱逐
- Disk Timeout

3.3 仲裁

- Voting Disk 投票
- 多数原则
- 少数驱逐

4. 驱逐过程

4.1 检测

- cssd 检测
- 心跳超时
- 节点不可达

4.2 重置

- 节点 reset
- 资源清理
- 重启

4.3 重配置

- 集群重配置
- 资源切换
- 服务恢复

5. 类型

5.1 Self-eviction

- 节点自驱
- cssd 检测自身
- 主动重启

5.2 Other-eviction

- 其他节点驱赶
- 少数节点
- 被驱

5.3 Manual

- crsctl stop crs -f
- 手动

6. 诊断

6.1 日志

- $GI_HOME/log/<node>/alert<node>.log
- cssd/ocssd.log
- crsd/crsd.log
- evmd/evmd.log

6.2 查看

# 节点驱逐时间
grep -i "evict" $GI_HOME/log/<node>/alert*.log

# cssd
grep -i "evict\|reboot" $GI_HOME/log/<node>/cssd/ocssd*.log

6.3 OS

- dmesg
- /var/log/messages
- OOM killer

7. 常见原因

7.1 网络问题

- Private 网卡故障
- 交换机
- 线缆

7.2 Voting Disk

- ASM 磁盘故障
- I/O 超时
- 空间

7.3 资源耗尽

- CPU 100%
- 内存
- swap

7.4 OS 问题

- 内核 bug
- OOM
- hang

8. 恢复

8.1 节点重启

- 自动重启
- 加入集群
- 资源启动

8.2 手动

- 启动 GI
- 加入集群
- 启动数据库

8.3 资源

- 自动恢复
- 服务切换
- 应用重连

9. 预防

9.1 网络

- HAIP 冗余
- 多网卡
- 监控

9.2 Voting

- 冗余
- 正常冗余
- 监控

9.3 资源

- 内存充足
- CPU
- 监控

9.4 超时

# 调整
crsctl set css misscount 60
crsctl set css disktimeout 60
crsctl set css reboottime 10

10. 影响

10.1 业务

- 服务切换
- 连接断开
- 短暂中断

10.2 数据

- 实例恢复
- 一致性
- 无数据丢失

10.3 性能

- 切换期间
- 节点负载增加
- 监控

11. 应用场景

11.1 网络故障

- 心跳失败
- 驱逐
- 恢复

11.2 节点 hang

- 资源耗尽
- 驱逐
- 重启

11.3 维护

- 计划维护
- 手动驱逐
- 重启

12. 监控

12.1 集群状态

crsctl stat res -t
olsnodes -s

12.2 历史

- alert log
- TFA
- 驱逐历史

12.3 OS

- dmesg
- /var/log/messages
- 性能

13. 常见问题

13.1 频繁驱逐

- 网络
- 资源
- 排查

13.2 无法重启

- ASM
- OCR/Voting
- 修复

13.3 数据库

- 实例恢复
- 启动失败
- 排查

14. 最佳实践

  1. 网络冗余:HAIP
  2. Voting 冗余:3 份
  3. 资源充足:CPU/内存
  4. 监控:网络/磁盘
  5. 超时调整:场景
  6. 日志:保留
  7. 告警:驱逐
  8. 文档:配置
  9. 演练:故障
  10. TFA:收集

15. 参考资料

[1] Oracle Grid Infrastructure Administrator’s Guide 19c, “Node Eviction” https://docs.oracle.com/en/database/oracle/oracle-database/19/cwali/