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. 最佳实践
- 网络冗余:HAIP
- Voting 冗余:3 份
- 资源充足:CPU/内存
- 监控:网络/磁盘
- 超时调整:场景
- 日志:保留
- 告警:驱逐
- 文档:配置
- 演练:故障
- TFA:收集
15. 参考资料
[1] Oracle Grid Infrastructure Administrator’s Guide 19c, “Node Eviction” https://docs.oracle.com/en/database/oracle/oracle-database/19/cwali/