原文链接:http://www.tdpub.cn/Blog/detail/id/1307.html
1、基线的作用
AWR报告是基于时间段A-B的快照得出来的统计信息。如何判断AWR报告上的参数代表系统的好坏

最简单的方法是我找个时间段a-b把这个时间段的AWR报告作为“标准”(也就是基线),而且我认为此时间段是"正常”表现的
对比A-B和a-b的状态,则就能明显看到哪一个指标有明显的下降。
基线就是一组特殊的快照,唯一的区别是我们的快照会自动删除,基线会保留
2.创建静态基线
下面是我的快照信息
/SNAP_ID DBID7891 16049273597892 16049273597893 16049273597894 16049273597895 16049273597896 1604927359/
因此我将以7895-7896建立基线
BEGINdbms_workload_repository.create_baseline(start_snap_id => 7895,end_snap_id => 7896,baseline_name => 'my_baseline_1',dbid => 1604927359,expiration => 15);--有效期15天,传入null就能实现永久保留了END;
3.查询基线
SELECT FROM dba_hist_baseline d where d.BASELINE_NAME='my_baseline_1';
4.删除基线
BEGINdbms_workload_repository.drop_baseline(baseline_name => 'my_baseline_1',cascade => FALSE--传入TRUE会把基线对应的快照也删除,所以最好传false,dbid => 1604927359);END;
5.使用静态基线对应的快照id进行对比
前面我们知道基线的作用就是防止快照被自动清理,所以即使不建立基线也能对比的
SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sqlEnter value for report_type: htmlEnter value for num_days: 20--查看20天以内的快照Enter value for begin_snap: 7891Enter value for end_snap: 7892Enter value for num_days2: 20Enter value for begin_snap2: 7895--对比(7891,7892)和(7895,7896)Enter value for end_snap2: 7896Enter value for report_name:/tmp/7891_7892_7895_7896.html
6.自适应阈值,用于什么条件触发警告
需要企业管理器,这里不再演示,详细见链接
https://docs.oracle.com/database/121/TDPPT/tdppt_degrade.htm#TDPPT332
7.模板基线
通俗来说,现在是早上8点,我需要固定晚上7点-8点的快照,但是又想早点下班,就可以告诉数据库,请为未来的快照建立基线
BEGINdbms_workload_repository.create_baseline_template(start_time => to_date('2022-11-29 19:00:00','YYYY-MM-DD HH24:MI:SS'),end_time => to_date('2022-11-29 20:30:00','YYYY-MM-DD HH24:MI:SS'),baseline_name => 'my_baseline_2',template_name => 'my_template_2',expiration => 30,dbid => 1604927359);END;
8.重复模板基线
如果要求今年每周二都要定期创建晚上7点到8点的基线
BEGINdbms_workload_repository.create_baseline_template(day_of_week => 'TUESDAY',hour_in_day => 19,duration => 1,expiration => 30--只留一个月,传null一直留着基线和快照,默认留35天,start_time => to_date('2022-11-29 00:00:00','YYYY-MM-DD HH24:MI:SS'),end_time => to_date('2022-12-30 00:00:00','YYYY-MM-DD HH24:MI:SS'),baseline_name_prefix => 'my_baseline_3',template_name => 'my_template_3',dbid => 1604927359);END;
查询模板基线
select from DBA_HIST_BASELINE_TEMPLATE;
删除前面创建的2个模板基线
BEGINDBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => 'my_template_2');DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => 'my_template_3');END;
我本地是单实例,RAC的基线比较见下面参考链接
参考资料
https://oracle-base.com/articles/11g/awr-baseline-enhancements-11gr1
https://docs.oracle.com/cd/B28359_01/server.111/b28275/tdppt_degrade.htm#CACDFJFC
https://docs.oracle.com/database/121/TGDBA/compare_stats.htm#TGDBA95286