Oracle AWR Baseline 详解
Oracle AWR Baseline 详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
AWR Baseline 是性能基线,用于对比分析[1]:
详细见:Oracle AWR 报告深度分析。
2. 类型
2.1 Static
- 固定快照范围
- 不变
- 推荐
2.2 Moving Window
- 动态窗口
- Adaptive Thresholds
- 自动
2.3 Template
- 模板
- 可重用
- 重复生成
3. 创建 Baseline
3.1 静态
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
start_snap_id => 100,
end_snap_id => 110,
baseline_name => 'peak_baseline',
dbid => null,
expiration => null
);
END;
/
3.2 时间范围
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
start_time => TO_DATE('2026-07-21 09:00', 'YYYY-MM-DD HH24:MI'),
end_time => TO_DATE('2026-07-21 11:00', 'YYYY-MM-DD HH24:MI'),
baseline_name => 'peak_baseline'
);
END;
/
3.3 Moving Window
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(
baseline_name => 'sysstat_moving',
template_name => 'mwindow_template',
baseline_type => 'MOVING_WINDOW',
window_size => 30
);
END;
/
4. 查看
4.1 视图
SELECT baseline_id, baseline_name, baseline_type, start_snap_id, end_snap_id
FROM dba_hist_baseline;
SELECT * FROM dba_hist_baseline_details;
SELECT * FROM dba_hist_baseline_template;
4.2 快照
SELECT snap_id, begin_interval_time, end_interval_time
FROM dba_hist_snapshot
ORDER BY snap_id DESC;
5. Adaptive Thresholds
5.1 启用
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(
baseline_name => 'adaptive_baseline',
template_name => 'adaptive_template',
baseline_type => 'MOVING_WINDOW',
window_size => 30,
instance_number => null,
expiration => null
);
END;
/
5.2 配置
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
metrics_id => 2104, -- 'Average Active Sessions'
warning_operator => DBMS_SERVER_ALERT.OPERATOR_GT,
warning_value => '50',
critical_operator => DBMS_SERVER_ALERT.OPERATOR_GT,
critical_value => '100',
observation_period => 1,
consecutive_occurrences => 1,
instance_name => null,
object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_SYSTEM,
object_name => null
);
END;
/
6. 对比
6.1 AWR 报告对比
@?/rdbms/admin/awrddrpt.sql
6.2 SQL 选择
SELECT dbid, baseline_name, start_snap_id, end_snap_id
FROM dba_hist_baseline;
7. 删除
BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(
baseline_name => 'peak_baseline',
cascade => FALSE
);
END;
/
8. 重命名
BEGIN
DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE(
old_baseline_name => 'peak_baseline',
new_baseline_name => 'peak_hours_baseline'
);
END;
/
9. 应用场景
9.1 性能对比
- 正常 vs 异常
- 峰值 vs 平峰
- 升级前 vs 升级后
9.2 告警
- Adaptive Thresholds
- 自动告警
- 基于基线
9.3 SLA
- 性能基线
- SLA 监控
- 容量规划
10. 最佳实践
- 峰值基线:业务高峰
- Moving Window:自动
- 对比:异常分析
- 告警:Adaptive
- 保留:长期
- 文档:标记
- 测试:验证
- 监控:基线
- 容量:规划
- 演练:定期
11. 参考资料
[1] Oracle Database Performance Tuning Guide 19c, “AWR Baselines” https://docs.oracle.com/en/database/oracle/oracle-database/19/tgdba/