Oracle 高可用监控详解
Oracle 高可用监控详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
高可用监控保证系统稳定[1]:
详细见:Oracle Data Guard 监控详解、Oracle Cluster Health Monitor 详解。
2. 监控对象
2.1 集群
- Clusterware 状态
- 资源状态
- 节点状态
2.2 数据库
- 实例状态
- 服务状态
- 性能
2.3 Data Guard
- 主备状态
- 延迟
- GAP
2.4 ASM
- Disk Group
- 磁盘状态
- 空间
3. 监控工具
3.1 OEM
- 集中
- 图形化
- 告警
3.2 CRS
crsctl stat res -t
srvctl status database -d prod
3.3 脚本
- 自定义
- 定时
- 告警
4. 关键指标
4.1 可用性
- 节点在线
- 实例运行
- 服务正常
4.2 延迟
- Transport Lag
- Apply Lag
- 网络
4.3 资源
- CPU
- 内存
- 磁盘
- 网络
4.4 空间
- 表空间
- FRA
- ASM
5. 集群监控
5.1 状态
crsctl check cluster -all
crsctl stat res -t
5.2 节点
olsnodes -n -s -t
crsctl check css
5.3 资源
srvctl status database -d prod
srvctl status service -d prod
srvctl status asm
srvctl status listener
6. Data Guard 监控
6.1 状态
SELECT database_role, protection_mode, switchover_status
FROM v$database;
6.2 延迟
SELECT name, value, unit FROM v$dataguard_stats;
6.3 进程
SELECT process, status, sequence#, delay_mins
FROM v$managed_standby;
7. ASM 监控
7.1 Disk Group
SELECT group_number, name, state, total_mb, free_mb
FROM v$asm_diskgroup;
7.2 磁盘
SELECT group_number, disk_number, name, mount_status, state
FROM v$asm_disk;
7.3 操作
SELECT * FROM v$asm_operation;
8. 性能监控
8.1 AWR
@?/rdbms/admin/awrrpt.sql
8.2 ASH
SELECT * FROM v$active_session_history WHERE ...;
8.3 等待事件
SELECT event, time_waited FROM v$system_event
WHERE wait_class != 'Idle' ORDER BY time_waited DESC;
详细见:Oracle AWR 报告深度分析。
9. 告警
9.1 阈值
- 延迟 > 60s
- 空间 < 20%
- 节点 offline
- 服务 down
9.2 通知
- 邮件
- 短信
- 监控系统
9.3 响应
- 值班
- 响应时间
- 处理
10. 自动化监控
10.1 脚本
#!/bin/bash
# ha_monitor.sh
# 集群状态
crsctl stat res -t | grep -E 'OFFLINE|UNKNOWN'
# Data Guard
sqlplus -s / as sysdba <<EOF
SELECT name, value FROM v$dataguard_stats
WHERE name IN ('transport lag', 'apply lag');
EOF
# 空间
df -h | awk 'NR>1 && int(\$5) > 80'
10.2 调度
# crontab
*/5 * * * * /u01/scripts/ha_monitor.sh
10.3 集成
- Prometheus
- Grafana
- Zabbix
11. OEM 监控
11.1 集群
- Cluster 页面
- 节点状态
- 资源
11.2 Data Guard
- Data Guard 页面
- 状态
- 延迟
11.3 告警
- 告警规则
- 通知
- 处理
12. 日志
12.1 alert log
- 主库
- 备库
- ASM
12.2 集群日志
- crsd.log
- cssd.log
- evmd.log
12.3 Broker
- drc<sid>.log
- Observer log
13. 应用场景
13.1 日常
- 实时监控
- 告警
- 处理
13.2 故障
- 快速定位
- 响应
- 恢复
13.3 演练
- 监控验证
- 改进
- 优化
14. 常见问题
14.1 误报
- 阈值
- 调整
- 优化
14.2 漏报
- 监控缺失
- 补充
- 验证
14.3 响应慢
- 流程
- 自动化
- 优化
15. 最佳实践
- 全面监控:全栈
- 实时:秒级
- 告警:阈值
- 自动化:脚本
- OEM:集成
- 日志:检查
- 响应:及时
- 文档:流程
- 演练:故障
- 改进:持续
16. 参考资料
[1] Oracle Enterprise Manager Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/emadmin/