外观
Oracle 核心监控指标清单
监控指标概述
Oracle数据库监控指标是评估数据库健康状态、性能和可用性的重要依据,通过监控这些指标可以及时发现和解决数据库问题,确保数据库的稳定运行。监控指标应该覆盖数据库的各个方面,包括性能、可用性、资源使用和安全等。
监控指标分类
1. 性能指标
性能指标反映数据库的处理能力和响应速度,是监控的重点。
1.1 数据库响应时间
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| SQL响应时间 | 单个SQL语句的执行时间 | AWR报告、V$SQLSTATS | < 1秒 | 21c优化SQL执行计划,响应时间更稳定 |
| 事务响应时间 | 单个事务的处理时间 | V$TRANSACTION | < 2秒 | 无明显差异 |
| 会话响应时间 | 会话的平均响应时间 | V$SESSION_EVENT | < 1秒 | 无明显差异 |
1.2 吞吐量指标
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| SQL执行次数 | 每秒执行的SQL语句数 | V$SYSSTAT | 根据业务需求 | 21c支持更高的并发SQL执行 |
| 事务处理量 | 每秒处理的事务数 | V$SYSSTAT | 根据业务需求 | 无明显差异 |
| 数据吞吐量 | 每秒读写的数据量 | V$SYSSTAT | 根据业务需求 | 21c优化I/O处理,吞吐量更高 |
1.3 等待事件
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 等待事件占比 | 各种等待事件的占比 | V$SESSION_WAIT | 空闲等待 > 50% | 21c优化等待事件处理 |
| 顶级等待事件 | 排名前几的等待事件 | AWR报告 | 根据等待事件类型 | 无明显差异 |
| 锁等待时间 | 锁等待的平均时间 | V$LOCK | < 1秒 | 无明显差异 |
2. 可用性指标
可用性指标反映数据库的运行状态和可靠性。
2.1 实例状态
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 实例状态 | 数据库实例的运行状态 | V$INSTANCE | OPEN | 无明显差异 |
| 实例启动时间 | 实例连续运行时间 | V$INSTANCE | 根据业务需求 | 无明显差异 |
| 实例重启次数 | 实例重启的次数 | V$INSTANCE_RESTART | 0 | 无明显差异 |
2.2 服务状态
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 监听器状态 | 监听器的运行状态 | lsnrctl status | READY | 无明显差异 |
| 服务注册状态 | 服务是否成功注册到监听器 | lsnrctl services | READY | 无明显差异 |
| 连接数 | 当前数据库连接数 | V$SESSION | < 最大连接数的80% | 21c支持更高的并发连接 |
3. 资源使用指标
资源使用指标反映数据库对系统资源的使用情况。
3.1 CPU使用率
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 数据库CPU使用率 | 数据库进程使用的CPU百分比 | V$SYSSTAT | < 80% | 21c优化CPU使用,效率更高 |
| 系统CPU使用率 | 系统整体CPU使用率 | OS命令(top、vmstat) | < 80% | 无明显差异 |
| 会话CPU使用率 | 单个会话的CPU使用率 | V$SESSION | < 5% | 无明显差异 |
3.2 内存使用率
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| SGA使用率 | 系统全局区(SGA)使用率 | V$SGASTAT | < 90% | 无明显差异 |
| PGA使用率 | 程序全局区(PGA)使用率 | V$PGASTAT | < 90% | 21c优化PGA管理 |
| 共享池使用率 | 共享池使用率 | V$SHARED_POOL_RESERVED | < 90% | 无明显差异 |
| 缓冲区缓存命中率 | 缓冲区缓存的命中率 | V$BUFFER_POOL_STATISTICS | > 95% | 无明显差异 |
3.3 磁盘I/O指标
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 磁盘读写速率 | 每秒读写的数据量 | V$FILENAME、iostat | 根据存储性能 | 21c优化I/O处理 |
| 磁盘I/O等待时间 | 磁盘I/O操作的等待时间 | V$FILESTAT | < 20ms | 无明显差异 |
| 数据文件I/O | 每个数据文件的I/O情况 | V$FILESTAT | 根据业务需求 | 无明显差异 |
| 表空间使用率 | 表空间的使用率 | DBA_TABLESPACE_USAGE_METRICS | < 80% | 无明显差异 |
4. 安全指标
安全指标反映数据库的安全状态,包括用户活动、权限使用和审计日志等。
4.1 用户活动
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 失败登录次数 | 失败的登录尝试次数 | V$LOGON_HISTORY | < 5次/小时 | 无明显差异 |
| 特权用户活动 | 特权用户的登录和操作 | DBA_AUDIT_TRAIL | 预期内活动 | 21c增强审计功能 |
| 异常连接 | 异常IP或时间的连接 | V$SESSION、DBA_AUDIT_TRAIL | 0 | 无明显差异 |
4.2 权限使用
| 指标名称 | 描述 | 监控方法 | 正常范围 | 19c/21c差异 |
|---|---|---|---|---|
| 权限变更 | 系统权限和对象权限的变更 | DBA_AUDIT_TRAIL | 预期内变更 | 21c增强权限管理 |
| 角色变更 | 角色的创建、修改和删除 | DBA_AUDIT_TRAIL | 预期内变更 | 无明显差异 |
| 敏感操作 | 敏感操作的执行情况 | DBA_AUDIT_TRAIL | 预期内操作 | 21c增强敏感操作审计 |
监控指标获取方法
1. 使用动态性能视图
Oracle提供了丰富的动态性能视图(V$视图)来获取监控指标:
sql
-- 获取数据库响应时间
SELECT * FROM V$SQLSTATS WHERE ELAPSED_TIME > 1000000 ORDER BY ELAPSED_TIME DESC;
-- 获取等待事件
SELECT EVENT, COUNT(*) FROM V$SESSION_WAIT GROUP BY EVENT ORDER BY COUNT(*) DESC;
-- 获取CPU使用率
SELECT VALUE/100 FROM V$SYSSTAT WHERE NAME = 'CPU used by this session';
-- 获取内存使用率
SELECT * FROM V$SGASTAT WHERE NAME LIKE '%free%';
SELECT * FROM V$PGASTAT;
-- 获取磁盘I/O
SELECT * FROM V$FILESTAT WHERE PHYBLKREAD > 1000 ORDER BY PHYBLKREAD DESC;
-- 获取表空间使用率
SELECT TABLESPACE_NAME, USED_PERCENT FROM DBA_TABLESPACE_USAGE_METRICS;2. 使用AWR报告
AWR(Automatic Workload Repository)报告提供了数据库性能的详细统计信息:
sql
-- 生成AWR报告
@?/rdbms/admin/awrrpt.sql
-- 生成指定快照范围的AWR报告
@?/rdbms/admin/awrrpti.sql3. 使用ASH报告
ASH(Active Session History)报告提供了活动会话的历史信息:
sql
-- 生成ASH报告
@?/rdbms/admin/ashrpt.sql
-- 生成指定快照范围的ASH报告
@?/rdbms/admin/ashrpti.sql4. 使用Enterprise Manager
Enterprise Manager提供了可视化的监控界面,可以直观地查看各种监控指标:
- 登录Enterprise Manager控制台
- 导航到"性能"选项卡
- 查看各种性能指标和图表
- 配置告警和通知
监控指标最佳实践
1. 指标选择原则
- 相关性:选择与业务相关的指标
- 可操作性:指标应该能够指导操作和优化
- 敏感性:指标应该能够敏感地反映数据库状态变化
- 简洁性:不要监控过多的指标,选择关键指标
2. 阈值设置
- 根据业务需求和历史数据设置合理的阈值
- 阈值应该考虑正常波动范围
- 阈值应该定期调整,适应业务变化
3. 监控频率
| 指标类型 | 监控频率 |
|---|---|
| 性能指标 | 每秒/每分钟 |
| 可用性指标 | 每5分钟 |
| 资源使用指标 | 每10分钟 |
| 安全指标 | 每小时 |
4. 告警配置
- 对关键指标设置告警
- 配置合理的告警级别(警告、严重、紧急)
- 配置告警通知方式(邮件、短信、SNMP)
- 配置告警升级机制
19c与21c监控指标差异
| 特性 | 19c | 21c |
|---|---|---|
| 监控指标数量 | 丰富 | 更丰富,新增多个监控指标 |
| 指标精度 | 秒级 | 支持毫秒级指标 |
| 监控视图 | 丰富 | 增强监控视图,提供更多维度 |
| AWR报告 | 详细 | 增强AWR报告,提供更多性能分析 |
| ASH报告 | 详细 | 增强ASH报告,支持更长时间范围 |
| 监控性能 | 较好 | 优化监控性能,减少开销 |
常见问题(FAQ)
1. 如何选择合适的监控指标?
问题:如何根据业务需求选择合适的监控指标? 解决方案:
- 分析业务特点和关键业务流程
- 识别业务对数据库的依赖关系
- 选择与业务相关的关键指标
- 逐步调整和优化监控指标
2. 监控指标过多如何优化?
问题:监控指标过多,导致监控系统负载高,如何优化? 解决方案:
- 筛选关键指标,减少监控指标数量
- 调整监控频率,降低监控开销
- 使用分层监控,不同层级使用不同的监控频率
- 优化监控系统,提高监控效率
3. 如何设置合理的阈值?
问题:如何设置合理的监控指标阈值? 解决方案:
- 分析历史数据,了解正常波动范围
- 考虑业务需求和SLA(服务水平协议)
- 参考Oracle官方建议的阈值
- 定期调整阈值,适应业务变化
4. 如何处理监控告警?
问题:如何处理大量的监控告警,避免告警风暴? 解决方案:
- 配置合理的告警级别和阈值
- 配置告警抑制和聚合规则
- 建立告警处理流程
- 定期分析告警,优化监控配置
5. 如何利用监控指标优化数据库性能?
问题:如何利用监控指标优化数据库性能? 解决方案:
- 分析监控指标,识别性能瓶颈
- 针对性能瓶颈进行优化,如SQL优化、索引优化、参数调整等
- 监控优化效果,评估优化结果
- 持续优化,不断提高数据库性能
总结
Oracle数据库核心监控指标清单覆盖了数据库的性能、可用性、资源使用和安全等各个方面,通过监控这些指标可以及时发现和解决数据库问题,确保数据库的稳定运行。
在监控指标选择和配置时,应该考虑19c和21c版本的差异,充分利用新版本的增强功能,如更丰富的监控指标、更高的指标精度和优化的监控性能。
通过遵循最佳实践,包括选择相关的指标、设置合理的阈值、配置适当的监控频率和告警机制,可以建立一个高效、可靠的数据库监控系统,确保数据库的稳定运行和良好性能。
