外观
DM 监控指标参考
实例状态指标
1. 实例基本信息
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 实例名称 | V$INSTANCE | 数据库实例的名称 | 配置值 | - |
| 实例状态 | V$INSTANCE | 实例的运行状态 | OPEN | MOUNT/STOP |
| 启动时间 | V$INSTANCE | 实例的启动时间 | - | - |
| 版本号 | V$INSTANCE | 数据库的版本号 | - | - |
| 数据库状态 | V$DATABASE | 数据库的状态 | NORMAL | SUSPENDED/ABNORMAL |
| 归档模式 | V$DATABASE | 数据库的归档模式 | YES/NO | - |
2. 实例健康状态
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 检查点完成状态 | V$CHECKPOINT | 检查点是否完成 | YES | NO |
| 日志切换状态 | V$LOG | 当前日志组状态 | CURRENT | INACTIVE/ACTIVE |
| 会话总数 | V$SESSION | 当前数据库会话总数 | 根据配置 | > 80% 配置值 |
| 活跃会话数 | V$SESSION | 当前活跃会话数量 | 根据负载 | > 70% 会话总数 |
系统资源指标
1. CPU 使用率
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 系统CPU使用率 | V$SYSLOAD | 系统CPU总使用率 | < 70% | > 85% |
| 用户CPU使用率 | V$SYSLOAD | 用户进程CPU使用率 | < 60% | > 75% |
| 系统CPU使用率 | V$SYSLOAD | 系统进程CPU使用率 | < 20% | > 30% |
| CPU核心数 | V$SYSTEMINFO | 系统CPU核心数量 | - | - |
2. 内存使用情况
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 总内存 | V$MEMORY | 数据库总内存使用量 | < 80% 系统内存 | > 90% 系统内存 |
| 数据缓冲区 | V$MEMORY | 数据缓冲区使用量 | < 90% 配置值 | > 95% 配置值 |
| 共享内存 | V$MEMORY | 共享内存使用量 | < 80% 配置值 | > 90% 配置值 |
| 排序区内存 | V$MEMORY | 排序区内存使用量 | < 80% 配置值 | > 90% 配置值 |
| 会话内存 | V$MEMORY | 会话内存使用量 | < 80% 配置值 | > 90% 配置值 |
3. 磁盘 I/O 指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 磁盘读速率 | V$DISK_IO | 磁盘读操作速率 | 根据存储性能 | 持续 > 80% 存储带宽 |
| 磁盘写速率 | V$DISK_IO | 磁盘写操作速率 | 根据存储性能 | 持续 > 80% 存储带宽 |
| I/O 等待时间 | V$SESSION_WAIT | I/O 等待事件的等待时间 | < 100ms | > 500ms |
| 读写请求比 | V$DISK_IO | 读请求与写请求的比例 | 根据业务类型 | 异常偏离正常比例 |
| 数据文件I/O | V$FILE_IOSTAT | 单个数据文件的I/O统计 | 根据文件重要性 | 持续高I/O |
性能指标
1. SQL 执行指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| SQL 执行次数 | V$SQL_STAT | SQL 语句的执行次数 | 根据业务量 | - |
| SQL 响应时间 | V$SQL_STAT | SQL 语句的平均响应时间 | < 100ms | > 500ms |
| CPU 时间 | V$SQL_STAT | SQL 语句消耗的CPU时间 | < 50ms | > 200ms |
| 磁盘读取次数 | V$SQL_STAT | SQL 语句的磁盘读取次数 | < 100 | > 500 |
| 缓冲区命中率 | V$BUFFERPOOL | 数据缓冲区命中率 | > 95% | < 90% |
| 慢SQL数量 | V$LONG_EXEC_SQL | 慢SQL的数量 | 0 | > 5 |
2. 事务指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 事务总数 | V$TRX_STAT | 总事务数量 | 根据业务量 | - |
| 活跃事务数 | V$TRX | 当前活跃事务数量 | < 100 | > 500 |
| 事务提交率 | V$TRX_STAT | 事务提交与回滚的比例 | > 95% | < 80% |
| 事务响应时间 | V$TRX | 事务的平均响应时间 | < 100ms | > 500ms |
| 锁等待数量 | V$LOCK | 当前锁等待数量 | 0 | > 10 |
3. 排序指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 排序总数 | V$SORT_STAT | 排序操作的总数量 | 根据业务量 | - |
| 内存排序率 | V$SORT_STAT | 内存排序占总排序的比例 | > 90% | < 80% |
| 磁盘排序次数 | V$SORT_STAT | 磁盘排序的次数 | < 100/分钟 | > 500/分钟 |
| 排序行数量 | V$SORT_STAT | 每次排序的平均行数量 | 根据业务 | - |
存储指标
1. 表空间指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 表空间使用率 | V$TABLESPACE | 表空间的使用百分比 | < 80% | > 90% |
| 表空间总大小 | V$TABLESPACE | 表空间的总大小 | - | - |
| 表空间可用大小 | V$TABLESPACE | 表空间的可用大小 | > 20% 总大小 | < 10% 总大小 |
| 数据文件数量 | V$DATAFILE | 表空间的数据文件数量 | 根据配置 | > 100 |
| 数据文件增长率 | V$DATAFILE | 数据文件的增长速率 | 根据业务 | 异常增长 |
2. 数据文件指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 数据文件大小 | V$DATAFILE | 单个数据文件的大小 | 根据配置 | > 80% 最大值 |
| 数据文件I/O | V$FILE_IOSTAT | 数据文件的I/O速率 | 根据存储 | 持续高I/O |
| 数据文件状态 | V$DATAFILE | 数据文件的状态 | ONLINE | OFFLINE/ERROR |
3. 日志文件指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 日志文件大小 | V$LOGFILE | 日志文件的大小 | 根据配置 | < 512MB |
| 日志切换频率 | V$LOG_HISTORY | 日志切换的频率 | < 10次/小时 | > 30次/小时 |
| 归档日志大小 | V$ARCHIVED_LOG | 归档日志的大小 | 根据业务 | 异常增长 |
| 归档成功率 | V$ARCH_STATUS | 归档操作的成功率 | 100% | < 100% |
会话与连接指标
1. 会话状态指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 会话总数 | V$SESSION | 当前会话总数量 | 根据配置 | > 80% 配置值 |
| 活跃会话数 | V$SESSION | 当前活跃会话数量 | < 70% 会话总数 | > 85% 会话总数 |
| 空闲会话数 | V$SESSION | 当前空闲会话数量 | < 50% 会话总数 | > 80% 会话总数 |
| 会话等待事件 | V$SESSION_WAIT | 会话等待的事件类型 | - | 长时间等待 |
| 会话平均持续时间 | V$SESSION | 会话的平均持续时间 | 根据业务 | > 24小时 |
2. 连接指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 连接总数 | V$SESSION | 当前数据库连接总数 | 根据配置 | > 80% 配置值 |
| 连接成功率 | V$SESSION | 连接请求的成功率 | 100% | < 95% |
| 连接拒绝数 | V$SESSIONS | 被拒绝的连接请求数 | 0 | > 10 |
| 最大连接数 | V$DM_INI | 配置的最大连接数 | - | - |
等待事件指标
1. 主要等待事件
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 等待事件名称 | V$SESSION_WAIT | 会话等待的事件名称 | - | - |
| 等待事件计数 | V$SESSION_WAIT | 等待事件的发生次数 | 根据负载 | 异常增长 |
| 平均等待时间 | V$SESSION_WAIT | 每次等待的平均时间 | < 100ms | > 500ms |
| 总等待时间 | V$SESSION_WAIT | 等待事件的总时间 | < 1s | > 10s |
| 等待会话数 | V$SESSION_WAIT | 等待该事件的会话数量 | 0 | > 5 |
2. 常见等待事件
| 等待事件 | 描述 | 可能原因 | 解决方案 |
|---|---|---|---|
| db file sequential read | 单个数据块的顺序读取 | 索引访问、全表扫描 | 优化SQL、添加索引 |
| db file scattered read | 多个数据块的分散读取 | 全表扫描、大索引扫描 | 优化SQL、调整PGA大小 |
| log file sync | 日志缓冲区写入磁盘 | 提交频繁、日志IO瓶颈 | 优化提交频率、提高日志IO性能 |
| log file parallel write | 日志并行写入 | 日志文件IO瓶颈 | 提高日志IO性能、增加日志组 |
| enq: TX - row lock contention | 行锁等待 | 并发更新同一行数据 | 优化事务设计、减少锁持有时间 |
| buffer busy waits | 缓冲区忙等待 | 缓冲区竞争激烈 | 调整缓冲区大小、优化热点数据访问 |
| direct path read | 直接路径读取 | 大表扫描、并行查询 | 优化SQL、调整PGA大小 |
备份恢复指标
1. 备份指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 备份成功率 | V$BACKUPSET | 备份操作的成功率 | 100% | < 100% |
| 备份时间 | V$BACKUPSET | 备份操作的持续时间 | 根据数据量 | 异常增长 |
| 备份大小 | V$BACKUPSET | 备份集的大小 | 根据数据量 | 异常变化 |
| 备份类型 | V$BACKUPSET | 备份的类型 | FULL/INCREMENTAL | - |
| 备份集数量 | V$BACKUPSET | 备份集的数量 | 根据备份策略 | 异常增长 |
2. 恢复指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 恢复成功率 | V$RECOVERY_STATUS | 恢复操作的成功率 | 100% | < 100% |
| 恢复时间 | V$RECOVERY_STATUS | 恢复操作的持续时间 | 根据数据量 | 异常增长 |
| 归档日志应用率 | V$RECOVERY_STATUS | 归档日志应用的速率 | 根据日志大小 | 异常缓慢 |
安全指标
1. 审计指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 审计日志数量 | V$AUDIT_RECORD | 审计日志的数量 | 根据配置 | 异常增长 |
| 失败登录次数 | V$AUDIT_RECORD | 失败登录尝试次数 | 0 | > 5 |
| 权限变更次数 | V$AUDIT_RECORD | 权限变更操作次数 | 根据管理活动 | 异常增长 |
| 敏感操作次数 | V$AUDIT_RECORD | 敏感操作的次数 | 根据业务 | 异常增长 |
2. 用户活动指标
| 指标名称 | 视图名称 | 指标描述 | 正常范围 | 告警阈值 |
|---|---|---|---|---|
| 用户登录次数 | V$SESSION | 用户登录的次数 | 根据业务 | 异常增长 |
| 特权用户活动 | V$SESSION | 特权用户的活动 | 根据管理活动 | 异常频繁 |
| 异常访问模式 | V$SESSION | 异常的访问模式 | - | 检测到异常 |
监控指标采集方法
1. 使用 SQL 查询采集
sql
-- 采集CPU使用率
SELECT USED_TIME*100/TOTAL_TIME AS CPU_USAGE
FROM V$CPU_USAGE
WHERE CPU_ID = 0;
-- 采集内存使用情况
SELECT * FROM V$MEMORY;
-- 采集表空间使用情况
SELECT T.NAME AS TABLESPACE_NAME,
ROUND(T.TOTAL_SIZE * P.PAGE_SIZE / 1024 / 1024, 2) AS TOTAL_MB,
ROUND((T.TOTAL_SIZE - T.FREE_SIZE) * P.PAGE_SIZE / 1024 / 1024, 2) AS USED_MB,
ROUND(T.FREE_SIZE * P.PAGE_SIZE / 1024 / 1024, 2) AS FREE_MB,
ROUND((T.TOTAL_SIZE - T.FREE_SIZE) * 100 / T.TOTAL_SIZE, 2) AS USED_PERCENT
FROM V$TABLESPACE T, V$DM_INI P
WHERE P.PARA_NAME = 'PAGE_SIZE';
-- 采集活跃会话数
SELECT COUNT(*) AS ACTIVE_SESSIONS
FROM V$SESSION
WHERE STATE = 'ACTIVE';2. 使用 DM 监控工具采集
DM数据库提供了专门的监控工具,可以图形化展示各种监控指标:
- DM 管理工具:提供基本的监控功能
- DM 性能监控工具:提供全面的性能监控和分析功能
- DM 日志分析工具:用于分析日志文件中的监控信息
3. 使用第三方监控工具
DM数据库支持与第三方监控工具集成,如:
- Zabbix
- Prometheus + Grafana
- Nagios
- Datadog
通过JDBC连接或专用插件,可以采集DM数据库的监控指标并进行展示和告警。
监控指标最佳实践
1. 建立监控体系
- 确定关键监控指标:根据业务需求和系统特点,选择关键监控指标
- 设置合理的告警阈值:根据系统负载和业务需求,设置合理的告警阈值
- 建立监控面板:使用监控工具建立直观的监控面板,实时展示关键指标
- 配置告警通知:配置告警通知机制,及时通知相关人员
2. 定期分析监控数据
- 定期回顾监控数据:每周或每月回顾监控数据,了解系统运行趋势
- 分析异常指标:对异常指标进行深入分析,找出根本原因
- 优化监控策略:根据分析结果,优化监控指标和告警阈值
- 预测系统容量:根据监控数据,预测系统容量需求,提前进行扩容
3. 结合日志分析
- 将监控指标与日志分析相结合:监控指标发现异常后,结合日志分析找出具体原因
- 建立日志关联机制:将监控事件与日志事件关联,便于根因分析
- 使用日志聚合工具:使用ELK、Splunk等工具聚合和分析日志
版本差异
| 版本 | 监控指标差异 |
|---|---|
| DM 8.1.1.41 及以上 | 支持基本的监控指标,包括实例状态、系统资源、性能指标等 |
| DM 8.1.1.133 及以上 | 增强了监控指标的丰富性,增加了更多的性能和存储指标 |
| DM 8.1.2.126 及以上 | 支持更细粒度的监控指标,增加了安全和审计相关指标 |
常见问题(FAQ)
Q1: 如何选择关键监控指标?
A1: 选择关键监控指标应考虑以下因素:
- 业务需求:根据业务特点选择相关指标
- 系统特点:根据系统架构和配置选择指标
- 历史经验:参考历史故障案例,选择相关指标
- 监控成本:考虑监控指标的采集和存储成本
Q2: 如何设置合理的告警阈值?
A2: 设置告警阈值的方法包括:
- 基于历史数据:分析历史数据,确定正常范围
- 基于业务需求:根据业务对性能的要求设置阈值
- 基于经验值:参考行业最佳实践和经验值
- 逐步调整:初始设置保守阈值,然后根据实际情况逐步调整
Q3: 如何处理大量的监控数据?
A3: 处理大量监控数据的方法包括:
- 数据采样:对高频数据进行采样,减少数据量
- 数据聚合:按时间段聚合数据,减少存储量
- 数据归档:定期归档历史数据,只保留近期数据
- 数据压缩:对数据进行压缩,减少存储空间
Q4: 如何关联监控指标和日志?
A4: 关联监控指标和日志的方法包括:
- 使用统一的时间戳:确保监控指标和日志使用相同的时间戳格式
- 事件关联:将监控告警事件与日志事件关联
- 使用分布式追踪:对请求进行全链路追踪,关联各个环节的监控数据
Q5: 如何预测系统容量?
A5: 预测系统容量的方法包括:
- 趋势分析:分析监控数据的变化趋势,预测未来需求
- 负载测试:进行负载测试,确定系统极限容量
- 业务预测:根据业务增长预测,估算未来容量需求
- 基线比较:与类似系统的基线数据进行比较
Q6: 如何优化监控性能?
A6: 优化监控性能的方法包括:
- 减少监控频率:降低高频指标的采集频率
- 减少指标数量:只采集必要的监控指标
- 优化采集方式:使用高效的采集方式,减少对系统的影响
- 分布式采集:使用分布式架构采集监控数据
- 异步处理:使用异步方式处理和存储监控数据
