Skip to content

Oracle 告警触发条件

系统级告警

CPU 告警

监控指标

  • CPU 使用率:服务器整体 CPU 使用率
  • 用户 CPU 使用率:用户进程占用的 CPU 使用率
  • 系统 CPU 使用率:系统进程占用的 CPU 使用率
  • I/O 等待 CPU 使用率:I/O 等待占用的 CPU 使用率

触发条件

  • 紧急告警:CPU 使用率持续超过 90% 达 5 分钟
  • 严重告警:CPU 使用率持续超过 80% 达 10 分钟
  • 警告:CPU 使用率持续超过 70% 达 15 分钟

告警处理

  • 检查是否有异常进程占用大量 CPU
  • 分析数据库会话,识别消耗 CPU 的 SQL
  • 考虑增加 CPU 资源或优化 SQL 语句
  • 调整数据库参数,如并行度设置

内存告警

监控指标

  • 物理内存使用率:服务器物理内存使用情况
  • SGA 使用率:Oracle SGA 内存使用情况
  • PGA 使用率:Oracle PGA 内存使用情况
  • 交换空间使用率:服务器交换空间使用情况

触发条件

  • 紧急告警:物理内存使用率超过 95% 或交换空间使用率超过 90%
  • 严重告警:物理内存使用率超过 90% 或交换空间使用率超过 80%
  • 警告:物理内存使用率超过 85% 或交换空间使用率超过 70%

告警处理

  • 检查内存使用情况,识别内存泄漏
  • 调整 SGA 和 PGA 大小
  • 考虑增加物理内存
  • 优化内存使用,如减少排序操作

磁盘告警

监控指标

  • 磁盘使用率:磁盘空间使用情况
  • I/O 等待时间:磁盘 I/O 响应时间
  • 磁盘读写速率:磁盘 I/O 吞吐量
  • 磁盘 I/O 使用率:磁盘 I/O 通道使用率

触发条件

  • 紧急告警:磁盘使用率超过 95% 或 I/O 等待时间超过 50ms
  • 严重告警:磁盘使用率超过 90% 或 I/O 等待时间超过 30ms
  • 警告:磁盘使用率超过 85% 或 I/O 等待时间超过 20ms

告警处理

  • 清理磁盘空间,删除无用文件
  • 检查是否有大量 I/O 操作的 SQL
  • 考虑使用 RAID 或增加存储带宽
  • 优化 SQL 语句,减少 I/O 操作

网络告警

监控指标

  • 网络延迟:网络响应时间
  • 网络吞吐量:网络数据传输速率
  • 网络丢包率:网络数据包丢失率
  • 网络连接数:网络连接数量

触发条件

  • 紧急告警:网络延迟超过 100ms 或丢包率超过 5%
  • 严重告警:网络延迟超过 50ms 或丢包率超过 2%
  • 警告:网络延迟超过 30ms 或丢包率超过 1%

告警处理

  • 检查网络设备状态
  • 分析网络流量,识别异常流量
  • 考虑增加网络带宽
  • 优化应用程序,减少网络传输数据量

数据库级告警

实例状态告警

监控指标

  • 实例状态:数据库实例是否正常运行
  • 实例启动时间:实例运行时间
  • 实例重启次数:实例重启频率
  • 实例错误日志:实例错误信息

触发条件

  • 紧急告警:实例状态异常或实例崩溃
  • 严重告警:实例重启或实例错误日志中有严重错误
  • 警告:实例性能下降或实例错误日志中有警告信息

告警处理

  • 检查实例状态和错误日志
  • 分析实例重启原因
  • 处理实例错误
  • 确保实例高可用性

连接数告警

监控指标

  • 当前连接数:当前活跃的数据库连接数
  • 最大连接数:数据库允许的最大连接数
  • 连接增长率:连接数增长速度
  • 空闲连接数:长时间空闲的连接数

触发条件

  • 紧急告警:连接数超过最大连接数的 95%
  • 严重告警:连接数超过最大连接数的 85%
  • 警告:连接数超过最大连接数的 75%

告警处理

  • 检查是否有异常连接
  • 清理空闲连接
  • 调整最大连接数设置
  • 考虑使用连接池
  • 优化应用程序连接管理

表空间告警

监控指标

  • 表空间使用率:各表空间的空间使用情况
  • 表空间增长速率:表空间增长速度
  • 数据文件状态:数据文件是否在线且可用
  • 表空间碎片:表空间碎片程度

触发条件

  • 紧急告警:表空间使用率超过 95% 或数据文件离线
  • 严重告警:表空间使用率超过 90%
  • 警告:表空间使用率超过 80%

告警处理

  • 为表空间添加数据文件或扩展现有数据文件
  • 清理表空间中的无用数据
  • 处理离线数据文件
  • 整理表空间碎片

重做日志告警

监控指标

  • 重做日志切换频率:重做日志切换次数
  • 重做日志大小:重做日志文件大小
  • 重做日志归档状态:归档是否正常
  • 重做日志等待:重做日志相关的等待事件

触发条件

  • 紧急告警:重做日志切换频率超过每分钟 10 次或归档失败
  • 严重告警:重做日志切换频率超过每分钟 5 次
  • 警告:重做日志切换频率超过每分钟 3 次

告警处理

  • 增加重做日志组和大小
  • 检查归档目录空间
  • 优化提交频率
  • 处理归档失败问题

临时表空间告警

监控指标

  • 临时表空间使用率:临时表空间使用情况
  • 临时表空间增长速率:临时表空间增长速度
  • 临时段使用:临时段的使用情况
  • 排序操作:排序操作的数量和大小

触发条件

  • 紧急告警:临时表空间使用率超过 95%
  • 严重告警:临时表空间使用率超过 90%
  • 警告:临时表空间使用率超过 85%

告警处理

  • 增加临时表空间大小
  • 优化排序操作,减少临时空间使用
  • 使用临时表空间组
  • 识别消耗大量临时空间的 SQL

撤销表空间告警

监控指标

  • 撤销表空间使用率:撤销表空间使用情况
  • 撤销保留时间:撤销数据的保留时间
  • 长时间运行的事务:运行时间较长的事务
  • 撤销空间争用:撤销空间相关的等待事件

触发条件

  • 紧急告警:撤销表空间使用率超过 95%
  • 严重告警:撤销表空间使用率超过 90%
  • 警告:撤销表空间使用率超过 85%

告警处理

  • 增加撤销表空间大小
  • 调整撤销保留时间
  • 识别和处理长时间运行的事务
  • 优化事务处理,减少撤销空间使用

SQL 性能告警

慢 SQL 告警

监控指标

  • SQL 执行时间:SQL 语句的执行时间
  • SQL 执行次数:SQL 语句的执行频率
  • SQL 资源消耗:SQL 语句消耗的 CPU、I/O 等资源
  • SQL 执行计划:SQL 语句的执行计划变化

触发条件

  • 紧急告警:SQL 执行时间超过 60 秒
  • 严重告警:SQL 执行时间超过 30 秒
  • 警告:SQL 执行时间超过 10 秒

告警处理

  • 分析 SQL 执行计划
  • 优化 SQL 语句,如添加索引
  • 调整数据库参数
  • 考虑使用 SQL 计划管理

硬解析告警

监控指标

  • 硬解析次数:SQL 硬解析的数量
  • 硬解析率:硬解析占总解析的比例
  • 共享池使用率:共享池内存使用情况
  • SQL 语句长度:SQL 语句的长度

触发条件

  • 紧急告警:硬解析率超过 20%
  • 严重告警:硬解析率超过 15%
  • 警告:硬解析率超过 10%

告警处理

  • 使用绑定变量
  • 调整共享池大小
  • 优化应用程序,减少 SQL 语句长度
  • 考虑使用游标共享

死锁告警

监控指标

  • 死锁次数:数据库死锁的发生次数
  • 阻塞会话:被阻塞的会话数量
  • 阻塞时间:会话被阻塞的时间
  • 死锁原因:死锁产生的原因

触发条件

  • 紧急告警:发生死锁或阻塞时间超过 60 秒
  • 严重告警:阻塞时间超过 30 秒
  • 警告:阻塞时间超过 10 秒

告警处理

  • 分析死锁原因和阻塞会话
  • 处理死锁,如终止阻塞会话
  • 优化应用程序,减少死锁发生
  • 调整事务隔离级别

存储告警

ASM 告警

监控指标

  • ASM 磁盘组使用率:ASM 磁盘组空间使用情况
  • ASM 磁盘状态:ASM 磁盘是否正常
  • ASM 磁盘 I/O:ASM 磁盘 I/O 性能
  • ASM 重平衡:ASM 重平衡状态

触发条件

  • 紧急告警:ASM 磁盘组使用率超过 95% 或磁盘故障
  • 严重告警:ASM 磁盘组使用率超过 90%
  • 警告:ASM 磁盘组使用率超过 85%

告警处理

  • 为 ASM 磁盘组添加磁盘
  • 处理故障磁盘
  • 监控 ASM 重平衡过程
  • 优化 ASM 配置

数据文件告警

监控指标

  • 数据文件大小:数据文件的大小
  • 数据文件增长速率:数据文件增长速度
  • 数据文件 I/O:数据文件的 I/O 性能
  • 数据文件状态:数据文件是否在线且可用

触发条件

  • 紧急告警:数据文件达到最大大小或状态异常
  • 严重告警:数据文件大小超过最大大小的 90%
  • 警告:数据文件大小超过最大大小的 80%

告警处理

  • 扩展数据文件或添加新的数据文件
  • 处理数据文件状态异常
  • 优化数据文件 I/O 性能
  • 考虑使用分区表分散数据

安全告警

权限告警

监控指标

  • 权限变更:数据库权限的变更情况
  • 角色变更:数据库角色的变更情况
  • 用户登录:用户登录情况,特别是特权用户
  • 权限使用:敏感权限的使用情况

触发条件

  • 紧急告警:特权用户权限变更或未授权的权限使用
  • 严重告警:普通用户权限变更
  • 警告:角色变更或异常的权限使用模式

告警处理

  • 审查权限变更原因
  • 验证权限变更的合法性
  • 记录权限变更审计日志
  • 实施最小权限原则

登录告警

监控指标

  • 登录失败次数:用户登录失败的次数
  • 异常登录:异常时间或位置的登录
  • 特权用户登录:特权用户的登录情况
  • 并发登录数:同一用户的并发登录数量

触发条件

  • 紧急告警:登录失败次数超过阈值或特权用户异常登录
  • 严重告警:异常时间或位置的登录
  • 警告:并发登录数超过正常范围

告警处理

  • 检查登录失败原因
  • 验证异常登录的合法性
  • 考虑锁定可疑账户
  • 实施登录限制和审计

审计告警

监控指标

  • 审计日志大小:审计日志的大小和增长速度
  • 审计事件:重要的审计事件
  • 审计策略:审计策略的变更
  • 审计数据完整性:审计数据的完整性

触发条件

  • 紧急告警:审计日志满或审计数据不完整
  • 严重告警:审计策略变更或重要审计事件
  • 警告:审计日志增长过快

告警处理

  • 归档或清理审计日志
  • 审查重要审计事件
  • 验证审计策略变更的合法性
  • 确保审计数据的完整性和安全性

备份恢复告警

备份告警

监控指标

  • 备份状态:备份是否成功完成
  • 备份时间:备份执行时间
  • 备份大小:备份集的大小
  • 备份频率:备份执行频率

触发条件

  • 紧急告警:备份失败或备份未执行
  • 严重告警:备份时间过长或备份不完整
  • 警告:备份频率不符合要求

告警处理

  • 检查备份失败原因
  • 重新执行失败的备份
  • 优化备份策略和配置
  • 确保备份的完整性和可用性

恢复告警

监控指标

  • 恢复状态:恢复操作是否成功完成
  • 恢复时间:恢复操作执行时间
  • 恢复点目标:恢复是否达到预期的恢复点目标
  • 归档日志:归档日志的可用性和完整性

触发条件

  • 紧急告警:恢复失败或恢复未达到恢复点目标
  • 严重告警:恢复时间过长
  • 警告:归档日志不完整或不可用

告警处理

  • 检查恢复失败原因
  • 处理归档日志问题
  • 优化恢复策略和配置
  • 测试恢复过程,确保可恢复性

应用级告警

业务指标告警

监控指标

  • 响应时间:应用程序响应时间
  • 事务成功率:业务事务的成功比例
  • 吞吐量:系统处理的事务数量
  • 业务错误率:业务逻辑错误的比例

触发条件

  • 紧急告警:响应时间超过阈值的 200% 或事务成功率低于 90%
  • 严重告警:响应时间超过阈值的 150% 或事务成功率低于 95%
  • 警告:响应时间超过阈值的 120% 或事务成功率低于 98%

告警处理

  • 分析应用程序响应时间瓶颈
  • 检查业务错误原因
  • 优化应用程序和数据库
  • 确保系统能够处理预期的吞吐量

批处理告警

监控指标

  • 批处理执行时间:批处理作业的执行时间
  • 批处理成功率:批处理作业的成功比例
  • 批处理资源消耗:批处理作业消耗的资源
  • 批处理依赖:批处理作业的依赖关系

触发条件

  • 紧急告警:批处理失败或执行时间超过预期的 200%
  • 严重告警:批处理执行时间超过预期的 150%
  • 警告:批处理执行时间超过预期的 120%

告警处理

  • 检查批处理失败原因
  • 优化批处理作业,减少执行时间
  • 调整批处理资源分配
  • 监控批处理依赖关系,确保顺序执行

告警管理最佳实践

告警配置

告警分级

  • 紧急:需要立即处理的严重问题,如实例崩溃
  • 严重:需要在 4 小时内处理的问题,如性能严重下降
  • 警告:需要在 24 小时内处理的问题,如资源使用接近阈值

告警阈值设置

  • 根据系统特点和业务需求设置合适的阈值
  • 考虑使用动态阈值,根据系统负载自动调整
  • 定期审查和调整告警阈值
  • 为不同的环境设置不同的阈值(如生产环境和测试环境)

告警通知

  • 通知方式:邮件、短信、企业微信、钉钉、电话等
  • 通知级别:根据告警级别选择合适的通知方式
  • 通知频率:避免过多的重复通知
  • 通知升级:如果告警未及时处理,自动升级通知

告警处理流程

告警接收

  • 确保告警能够及时送达相关人员
  • 建立告警接收确认机制
  • 记录告警接收时间和接收人

告警分析

  • 分析告警原因和影响范围
  • 确定告警的优先级和处理顺序
  • 收集相关信息,如日志、性能数据等

告警处理

  • 根据告警类型和严重程度采取相应的处理措施
  • 记录处理过程和结果
  • 验证处理效果,确保问题解决

告警关闭

  • 确认问题已解决后关闭告警
  • 记录告警关闭时间和关闭人
  • 分析告警处理的经验教训

告警优化

告警减少

  • 优化系统,减少不必要的告警
  • 合并相关的告警,避免告警风暴
  • 调整告警阈值,减少误报
  • 实施告警抑制,如维护期间暂时抑制非关键告警

告警自动化

  • 实现常见告警的自动处理
  • 使用自动化工具监控和处理告警
  • 建立告警处理的自动化工作流
  • 利用机器学习识别告警模式,预测潜在问题

告警分析

  • 定期分析告警数据,识别系统趋势
  • 找出频繁发生的告警,分析根本原因
  • 评估告警处理的效率和效果
  • 根据分析结果优化告警配置和处理流程

版本差异考虑

Oracle 11g

  • 告警功能:支持基本的告警功能,如 Enterprise Manager 的告警
  • 监控工具:使用 Statspack 和基本的 AWR 报告
  • 最佳实践:设置关键系统和数据库指标的告警,使用脚本监控

Oracle 12c

  • 告警功能:增强了告警功能,支持多租户环境的告警
  • 监控工具:增强了 AWR 和 ASH 功能
  • 最佳实践:为每个 PDB 设置独立的告警,使用统一的告警管理策略

Oracle 19c

  • 告警功能:进一步增强了告警功能,支持自动性能诊断
  • 监控工具:增强了自动性能监控功能
  • 最佳实践:利用自动性能诊断功能,设置智能告警

Oracle 21c

  • 告警功能:引入了更多智能化的告警功能
  • 监控工具:支持机器学习辅助的性能监控
  • 最佳实践:利用智能化告警功能,减少人工干预,提高告警准确性

常见问题(FAQ)

Q1: 如何设置合理的告警阈值?

A1: 设置合理告警阈值的方法:

  • 基准测试:在系统正常运行时收集性能数据,建立基准值
  • 业务需求:根据业务对性能的要求设置阈值
  • 系统特点:考虑系统的硬件配置和负载特点
  • 经验调整:根据实际运行经验,逐步调整阈值
  • 动态阈值:考虑使用动态阈值,根据系统负载自动调整

Q2: 如何避免告警风暴?

A2: 避免告警风暴的方法:

  • 告警分级:对告警进行分级,优先处理严重的告警
  • 告警聚合:将相关的告警聚合为一个,减少重复告警
  • 告警抑制:在维护期间暂时抑制非关键告警
  • 告警过滤:过滤掉已知的、不影响系统运行的告警
  • 自动处理:对常见的告警实现自动处理

Q3: 如何处理大量的告警?

A3: 处理大量告警的方法:

  • 优先级排序:根据告警的严重程度和影响范围排序
  • 批量处理:对相似的告警进行批量处理
  • 团队协作:合理分配告警处理任务给团队成员
  • 自动化处理:利用自动化工具处理常见告警
  • 根本原因分析:分析告警的根本原因,从源头解决问题

Q4: 如何确保告警的及时性和可靠性?

A4: 确保告警及时性和可靠性的方法:

  • 多渠道通知:使用多种通知方式,如邮件、短信、企业微信等
  • 通知确认:建立告警接收确认机制
  • 通知升级:如果告警未及时处理,自动升级通知
  • 告警测试:定期测试告警系统,确保其正常工作
  • 冗余配置:配置多个告警服务器,确保高可用性

Q5: 如何利用告警数据进行系统优化?

A5: 利用告警数据进行系统优化的方法:

  • 趋势分析:分析告警的时间分布和频率,识别系统趋势
  • 关联分析:分析不同告警之间的关联关系,找出根本原因
  • 性能瓶颈识别:通过告警数据识别系统性能瓶颈
  • 容量规划:根据告警数据预测资源需求,进行容量规划
  • 优化建议:基于告警数据,提出系统优化建议

Q6: 如何设置备份恢复相关的告警?

A6: 设置备份恢复相关告警的方法:

  • 备份状态:监控备份是否成功完成,设置备份失败告警
  • 备份时间:监控备份执行时间,设置执行时间过长告警
  • 备份频率:监控备份执行频率,设置未按时执行告警
  • 恢复测试:定期测试恢复过程,设置恢复测试失败告警
  • 归档日志:监控归档日志的可用性和完整性,设置异常告警

Q7: 如何处理性能相关的告警?

A7: 处理性能相关告警的方法:

  • 性能分析:使用 AWR、ASH 等工具分析性能问题
  • SQL 优化:识别和优化消耗资源的 SQL 语句
  • 参数调整:根据性能数据调整数据库参数
  • 资源分配:合理分配系统资源,如 CPU、内存、I/O
  • 架构优化:根据性能需求优化系统架构

Q8: 如何实现告警的自动化处理?

A8: 实现告警自动化处理的方法:

  • 脚本自动化:编写脚本处理常见的告警
  • 工具集成:使用监控工具的自动化功能
  • 工作流:建立告警处理的自动化工作流
  • 机器学习:利用机器学习识别告警模式,自动处理常见问题
  • API 集成:通过 API 集成不同的系统,实现自动响应

Q9: 如何设置安全相关的告警?

A9: 设置安全相关告警的方法:

  • 权限变更:监控数据库权限的变更,设置异常变更告警
  • 登录监控:监控用户登录情况,设置异常登录告警
  • 敏感操作:监控敏感操作,如数据删除、修改等
  • 审计日志:监控审计日志,设置异常审计事件告警
  • 安全策略:监控安全策略的变更,设置策略变更告警

Q10: 如何建立有效的告警管理体系?

A10: 建立有效告警管理体系的方法:

  • 明确责任:明确告警处理的责任人及职责
  • 流程规范:建立标准化的告警处理流程
  • 工具支持:选择合适的监控和告警工具
  • 培训教育:对相关人员进行告警处理培训
  • 持续改进:定期评估和改进告警管理体系
  • 文档完善:完善告警管理的相关文档

Q11: 如何处理误报和漏报?

A11: 处理误报和漏报的方法:

  • 误报处理
    • 分析误报原因,调整告警阈值
    • 优化告警规则,减少误报
    • 实施告警验证机制,过滤误报
  • 漏报处理
    • 分析漏报原因,增加必要的告警
    • 优化告警配置,确保覆盖所有关键指标
    • 定期审查告警体系,发现和弥补漏洞

Q12: 如何利用告警数据进行预测性分析?

A12: 利用告警数据进行预测性分析的方法:

  • 数据收集:收集足够的历史告警数据
  • 模式识别:识别告警的模式和趋势
  • 相关性分析:分析不同指标之间的相关性
  • 预测模型:建立预测模型,预测潜在问题
  • 预警机制:基于预测结果,建立预警机制
  • 持续优化:根据实际情况调整预测模型