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;

详细见:Oracle Data Guard 监控详解


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. 最佳实践

  1. 全面监控:全栈
  2. 实时:秒级
  3. 告警:阈值
  4. 自动化:脚本
  5. OEM:集成
  6. 日志:检查
  7. 响应:及时
  8. 文档:流程
  9. 演练:故障
  10. 改进:持续

16. 参考资料

[1] Oracle Enterprise Manager Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/emadmin/