Oracle Cluster Health Monitor 详解
Oracle Cluster Health Monitor 详解
适用版本:Oracle Database 11g R2+ / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Cluster Health Monitor (CHM) 是集群健康监控工具[1]:
详细见:Oracle Clusterware 架构详解、Oracle Trace File Analyzer 详解。
2. 特性
2.1 实时监控
- OS 指标
- 集群指标
- 实时
2.2 历史
- 历史数据
- 分析
- 诊断
2.3 节点驱逐
- 驱逐前数据
- 原因分析
- 关键
3. 组件
3.1 sysdmd
- 系统数据监控
- 收集
- OS 指标
3.2 ologgerd
- 日志守护
- 存储
- 查询
3.3 CHM 仓库
- Berkeley DB
- 集中
- 历史
4. 安装
4.1 默认
- GI 安装时
- 自动
- 默认启用
4.2 验证
# 进程
ps -ef | grep sysdmd
ps -ef | grep ologgerd
# 状态
crsctl stat res -t | grep ora.chm
5. 使用
5.1 diagcollection.pl
$GI_HOME/bin/diagcollection.pl --collect --chm
5.2 CHM 报告
$GI_HOME/bin/chmdbg.sh
5.3 Grid Control
- OEM
- 集群页面
- CHM 视图
6. 监控指标
6.1 OS
- CPU
- 内存
- 网络
- 磁盘 I/O
6.2 进程
- 进程状态
- CPU 占用
- 内存
6.3 集群
- 节点状态
- 网络心跳
- 磁盘心跳
7. 节点驱逐分析
7.1 场景
- 节点被驱逐
- 原因不明
- CHM 分析
7.2 时间点
- 驱逐前几分钟
- OS 资源
- 进程
7.3 常见原因
- CPU 100%
- 内存不足
- 网络
- 磁盘
8. 查询
8.1 时间范围
$GI_HOME/bin/chmdbg.sh -lsnodes
$GI_HOME/bin/chmdbg.sh -last 1h
$GI_HOME/bin/chmdbg.sh -from "2026-07-21 10:00:00" -to "2026-07-21 11:00:00"
8.2 节点
$GI_HOME/bin/chmdbg.sh -node node1
8.3 指标
$GI_HOME/bin/chmdbg.sh -metric cpu
$GI_HOME/bin/chmdbg.sh -metric memory
9. 与其他工具
9.1 OS Watch
- OS 指标
- 类似
- 互补
9.2 TFA
- 集成
- 统一
- 诊断
9.3 AWR
- 数据库指标
- 互补
- 综合
10. 配置
10.1 仓库大小
# 默认 1G
$GI_HOME/bin/chmdbg.sh -setrepo -size 5G
10.2 保留
- 默认 7 天
- 调整
- 监控
10.3 禁用
crsctl stop res ora.chm
crsctl disable res ora.chm
11. 应用场景
11.1 节点驱逐
- 原因分析
- 关键
- 诊断
11.2 性能
- OS 瓶颈
- 分析
- 优化
11.3 故障
- 集群故障
- 时间点
- 分析
12. 监控
12.1 状态
crsctl stat res ora.chm
12.2 仓库
$GI_HOME/bin/chmdbg.sh -info
12.3 进程
ps -ef | grep -E 'sysdmd|ologgerd'
13. 常见问题
13.1 CHM 未运行
- 启动
- 检查
- 日志
13.2 仓库满
- 清理
- 增大
- 监控
13.3 数据缺失
- 进程异常
- 重启
- 修复
14. 最佳实践
- 启用:默认
- 仓库:足够
- 监控:状态
- 节点驱逐:分析
- 定期:检查
- TFA:集成
- OEM:集成
- 文档:配置
- 演练:故障
- 分析:定期
15. 参考资料
[1] Oracle Grid Infrastructure Administrator’s Guide 19c, “Cluster Health Monitor” https://docs.oracle.com/en/database/oracle/oracle-database/19/cwali/