Automatic Workload Repository(AWR)收集、处理和维护性能系统信息,为性能调优的问题检测提供了有力的帮助。

AWR收集和处理的统计信息包括:

1. 段的统计信息;

2. 时间模型统计信息(在v$sys_time_model和v$sess_time_model视图中查看);

3. 一些在v$sysstat和v$sesstat视图中收集的系统和会话的统计信息;

4.  系统中负载最高的一些sql语句,分别按执行时间、cpu时间、执行次数等标准来统计

5. ASH统计信息,包含近期会话活动的历史记录

若系统参数STATISTICS_LEVEL设置为TYPICAL或ALL将默认启用AWR来采集数据库统计信息。这个参数的默认值是TYPICAL,若将其设置为BASIC,将禁用很多oracle数据库功能,包括 AWR,但你仍可以通过DBMS_WORKLOAD_REPOSITORY包来手动获得AWR统计信息。但是,由于许多内存中的统计信息(比如段统计信息和内存顾问信息)会被禁用,快照中获得的统计信息可能不完整。

快照(snapshots)

快照是特定时间范围内的历史数据集合,再由ADDM进行性能比较。默认情况下,数据库每个小时产生一次快照,并将这些统计信息在工作量仓库中保留8天。你也可以手动创建快照,但这通常是不必要的。然后这些快照之间的信息将交给Automatic Database Diagnostic Monitor (ADDM) 进行分析。

AWR比较快照间信息的差异,然后获取对系统负载影响最大的一些sql语句,而不是获取所有sql语句,降低了统计的时间。

基线(Baselines)

基线包含了一个特定时间范围的性能数据,用来在性能问题发生时,与其他类似的时间段进行比较。基线中的快照会被自动AWR清除进程排除,并无限期保留。

oracle数据库中包含了三种类型的基线:

固定基线(Fixed Baselines)

固定基线相当于被指定的过去的一个固定的、连续的时间范围。在创建固定基线以前,要慎重考虑这个时间段,因为基线代表了一个理想状态的系统状态。之后,你可以用这个基线和其他基线或者某个时间范围内的快照来分析性能上的退化情况。

移动窗口基线(Moving Window Baseline)

移动窗口基线相当于AWR保留期间内存在的所有AWR数据。在使用自适应阈值时,这将很有用处,因为数据库可以使用AWR保留期间的所有AWR数据来计算出度量阈值。oracle数据库自动维护一个系统定义的移动窗口基线。系统定义的移动窗口基线的默认窗口大小等于当前AWR保留的时间,默认为8天。如果你要使用自适应阈值,可以考虑使用更大的移动窗口,例如30天,可以更精确地计算出阈值。你可以改变移动窗口的大小,这个值要等于或小于AWR保留天数。因此若你需要增大移动窗口的大小,首先需要增加AWR的保留时间。

基线模板(Baseline Templates)

你可以创建一个基线,作为未来一个时间连续的时间段可以使用的基线模板。有两种类型的基线模板:单一的和重复的。你可以为未来一个单独的连续时间段的基线创建单一基线模板。如果你要提前准备获取一个未来的时间段,这个技术会很有用处。例如,你安排好要在周末进行一个系统测试,并准备获取AWR数据,这种情况下,你可以创建一个单一基线模板,用以在测试时自动获取该时间范围内的数据。你也可以使用重复基线模板来创建或者删除一个重复的时间计划,当你想自动获取一个连续的时间范围,这将很有用。例如,你可能希望在一个月里的每周一早晨获取AWR数据,这种情况下,你可以创建一个重复基线模板来自动为每个周一创建基线,并且在设置了过期时间(例如一个月)后,自动删除过期的基线。

自适应阈值(Adaptive Thresholds)

自适应阈值可以帮你以最低的开销监控和检测出性能问题。自适应阈值能够从在移动窗口基线捕获到的度量值里得到的统计信息中,为系统度量自动设置警告和关键报警(warning and critical alert)的阈值。这些统计信息每周会重新生成,并可能由于系统性能随着时间变化改变,而产生新的阈值。

打个比方,很多数据库白天是一个OLTP系统,而到晚上需要执行一些批量进程(例如生成报表)。每个事务响应时间的性能度量对检测OLTP的性能退化问题在白天可能很有用,但是这个阈值常常对于批量工作来说会太低,而频繁触发报警。自适应阈值能检测到这样的工作量模式,并自动为白天和夜里设置不同的阈值。

自适应阈值的类型有两种:

最大值的百分比:阈值以最大值的百分比倍数的方式来计,

重要性级别:阈值被设为一个统计学中的百分位来观察基于移动窗口基线数据的阈值以上的值,来体现异常程度。百分位能指定为以下几种:高(0.95),100个中只有5个能超过这个值;非常高(0.99):100个中只有1个能超过这个值;严重的(0.999):1000个钟只有1个能超过这个值;极端的(0.9999):10000个钟只有1个能超过这个值。

当一个系统以高峰期工作量来设计的,并且你希望在当前工作量接近或超过先前的高值时触发报警,最大值百分比阈值将非常有用。例如,每秒产生redo量的度量就是个典型的例子。

重要性级别阈值在以下情况很有用:当系统运行正常时表现得很稳定,但当性能变差时可能会在一个大范围内波动。例如,每个事务的响应时间的度量在一个优化过的OLTP系统上将表现平稳,但当性能问题凸显时,可能会波动很大。采用重要性级别阈值,当环境产生不正常的度量值和系统性能时触发报警。

空间消耗(Space Consumption)

以下因素可以被用来判断AWR的空间消耗:在任一给定时间系统中的活动会话数;快照时间间隔,时间间隔越小,快照产生越频繁,增加AWR采集的数据的占用空间;历史数据保留时间

默认情况下,快照每小时捕获一次,并在数据库中保存8天。使用这些默认设置,一个典型的并发量为10个会话数的系统大约需要200-300M的空间来存放AWR数据。但是在降低保留时间的时间,请注意,若AWR中的数据不足,可能会影响一些组件和功能的准确性和精确度:ADDM、SQL Tuning Advisor、Undo Advisor、Segment Advisor。

可能的话,Oracle建议将AWR保留时间设得足够来,至少能捕获一个完整的工作量周期。当你的系统工作量周期为1周,比如工作日是OLTP的工作负荷,而在周末运行批量工作,则默认的8天保留时间不需要去修改。当如果你的系统的高峰期在每个月的月末,那么你可能需要将这个保留时间更改到1个月。

例外情况下,你可以将快照时间间隔改成0来关闭自动收集快照。在这种情况下,工作量和统计数据的自动收集将被停止,且许多Oracle数据库的自动管理功能将不能使用。另外,你不能手动创建快照,因此Oracle强烈建议不要关闭snapshot的自动收集。

管理工作量仓库

管理快照

创建快照:DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

删除快照:DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22,high_snap_id => 32, dbid => 3310949047); 属于这个时间范围内的ASH数据也将被清除

修改快照设置:DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, interval => 30, topnsql => 100, dbid => 3310949047); 相关时间的单位为分钟。

管理基线

创建基线

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270,

end_snap_id => 280, baseline_name => 'peak baseline',

dbid => 3310949047, expiration => 30);

删除基线

DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',

cascade => FALSE, dbid => 3310949047); --若cascade指定为true,将同时删除关联的快照

重命名基线

DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (

old_baseline_name => 'peak baseline',

new_baseline_name => 'peak mondays',

dbid => 3310949047);

显示基线度量

select * from table(DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRICS (

baseline_name => 'peak baseline',

dbid => 3310949047,

instance_num => '1'));

修改默认移动窗口基线的窗口大小

DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (

window_size => 30,

dbid => 3310949047);  --window_size单位是天,这个参数值必须小于等于当前AWR的保留时间

管理基线模板

创建单一基线模板

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (

start_time => '2009-04-02 17:00:00 PST',

end_time => '2009-04-02 20:00:00 PST',

baseline_name => 'baseline_090402',

template_name => 'template_090402', expiration => 30,

dbid => 3310949047);  --若不指定expiration参数,创建的基线将不会过期

创建重复基线模板

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (

day_of_week => 'monday', hour_in_day => 17,

duration => 3, expiration => 30,

start_time => '2009-04-02 17:00:00 PST',

end_time => '2009-12-31 20:00:00 PST',

baseline_name_prefix => 'baseline_2009_mondays_',

template_name => 'template_2009_mondays',

dbid => 3310949047);  --duration参数单位为小时

删除基线模板

DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (

template_name => 'template_2009_mondays',

dbid => 3310949047);

传输AWR数据

oracle数据库允许在不同的系统上传输AWR数据,若你想在单独的系统中来分析AWR数据,这个将会有用。

从源库中抽取数据: @$ORACLE_HOME/rdbms/admin/awrextr.sql

导入到目标库中: @$ORACLE_HOME/rdbms/admin/awrload.sql

数据使用数据泵来导出导入,因此还需要创建一个directory

AWR相关视图

v$active_session_history

显示活跃的数据库会话的活动,每秒采样一次

v$metric和v$metric_history

提供度量数据来跟踪系统性能。视图被组织成好几个组,这些组定义在v$metricgroup视图中

DBA_HIST视图

DBA_HIST_ACTIVE_SESS_HISTORY 展示内存中活动会话历史信息

DBA_HIST_BASELINE 展示捕获的基线的信息

DBA_HIST_BASELINE_DETAILS 展示特定基线的明细信息

DBA_HIST_BASELINE_TEMPLATE 基线模板相关信息

DBA_HIST_DATABASE_INSTANCE 数据库环境

DBA_HIST_DB_CACHE_ADVICE 根据历史数据预测在不同的cache size下的物理读

DBA_HIST_DISPATCHER 每个snapshot下调度进程的信息

DBA_HIST_DYN_REMASTER_STATS 动态remastering进程的统计信息

DBA_HIST_IOSTAT_DETAIL 按未见类型和功能来统计的历史I/O信息

DBA_HIST_SHARED_SERVER_SUMMARY 共享服务器的统计信息

DBA_HIST_SNAPSHOT 快照信息

DBA_HIST_SQL_PLAN 执行计划

DBA_HIST_WR_CONTROL AWR控制信息

生成AWR报告

生成一个典型的AWR报告:

1. At the SQL prompt, enter:

@$ORACLE_HOME/rdbms/admin/awrrpt.sql

2. Specify whether you want an HTML or a text report:

Enter value for report_type: text

In this example, a text report is chosen.

3. Specify the number of days for which you want to list snapshot IDs.

Enter value for num_days: 2

A list of existing snapshots for the specified time range is displayed. In this

example, snapshots captured in the last 2 days are displayed.

4. Specify a beginning and ending snapshot ID for the workload repository report:

Enter value for begin_snap: 150

Enter value for end_snap: 160

In this example, the snapshot with a snapshot ID of 150 is selected as the

beginning snapshot, and the snapshot with a snapshot ID of 160 is selected as the

ending snapshot.

5. Enter a report name, or accept the default report name:

Enter value for report_name:

Using the report name awrrpt_1_150_160

In this example, the default name is accepted and an AWR report named

awrrpt_1_150_160 is generated.

生成RAC环境下的报告: @$ORACLE_HOME/rdbms/admin/awrgrpt.sql

生成指定实例的报告: @$ORACLE_HOME/rdbms/admin/awrrpti.sql

生成指定实例的RAC AWR报告 @$ORACLE_HOME/rdbms/admin/awrgrpti.sql

生成一条sql语句的AWR报告 @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql    --需要指定sql_id

生成指定实例中的sql语句的AWR报告 @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

生成AWR对比报告

我们还可以通过生成AWR对比报告,将出现性能问题的两个snapshot间的统计信息与前面比较正常的两个snapshot间的统计信息进行比较。

生成AWR对比报告的过程如下:

1. At the SQL prompt, enter:

@$ORACLE_HOME/rdbms/admin/awrddrpt.sql

2. Specify whether you want an HTML or a text report:

Enter value for report_type: html

In this example, an HTML report is chosen.

3. Specify the number of days for which you want to list snapshot IDs in the first

time period.

Enter value for num_days: 2

A list of existing snapshots for the specified time range is displayed. In this

example, snapshots captured in the last 2 days are displayed.

4. Specify a beginning and ending snapshot ID for the first time period:

Enter value for begin_snap: 102

Enter value for end_snap: 103

In this example, the snapshot with a snapshot ID of 102 is selected as the

beginning snapshot, and the snapshot with a snapshot ID of 103 is selected as the

ending snapshot for the first time period.

5. Specify the number of days for which you want to list snapshot IDs in the second

time period.

Enter value for num_days2: 1

A list of existing snapshots for the specified time range is displayed. In this

example, snapshots captured in the previous day are displayed.

6. Specify a beginning and ending snapshot ID for the second time period:

Enter value for begin_snap2: 126

Enter value for end_snap2: 127

7. Enter a report name, or accept the default report name:

Enter value for report_name:

Using the report name awrdiff_1_102_1_126.txt

In this example, the default name is accepted and an AWR report named

awrdiff_1_102_126 is generated.

RAC下的对比报告 @$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

指定实例  @$ORACLE_HOME/rdbms/admin/awrddrpi.sql

RAC指定实例 @$ORACLE_HOME/rdbms/admin/awrgdrpi.sql

oracle awr top5,ORACLE AWR简介相关推荐

  1. oracle tirger_又一次发现Oracle太美之awr相关脚本简介

    又一次发现Oracle太美之awr相关脚本简介 大家知道在$ORACLE_HOME/rdbms/admin下,有例如以下的相关脚本(我的环境为11.2.0.4.2): [oracle@rh64 ~]$ ...

  2. oracle awr报告生成_5.性能测试 - Oracle体系结构和性能优化简介

    体系结构 Oracle体系结构示意图 Oracle服务器: Oracle服务器是一个数据库管理系统,它为信息管理提供了开放.综合和集成的方法,包括Oracle实例和 Oracle数据库. Oracle ...

  3. oracle性能优化之awr分析

    oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...

  4. oracle awr书籍,Oracle AWR介绍

    1AWR报告介绍 AWR是Oracle  10g版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库, AWR是通过对比两次快照(snapshot)收 ...

  5. 11g awr oracle 系列_Oracle 11g AWR 系列七:Active Sessi...-Oracle 11G新特性(共36个)-父子节点问题_169IT.COM...

    Oracle 11G新特性(共36个) 一.数据库管理部分 ·      1. 数据库重演(Database Replay) 这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据 ...

  6. oracle awr ash,Oracle AWR ASH

    AWR基础知识 1.自动工作负荷仓库 Oracle收集了大量与性能和动作相关的统计信息.这些信息在内存中累加,并且有规律地写入磁盘(也就是写入构成AWR的表).最终,这些信息会过期并被重写. 1.1. ...

  7. oracle临时表经常被锁_5.性能测试 - Oracle体系结构和性能优化简介

    体系结构 Oracle体系结构示意图 Oracle服务器: Oracle服务器是一个数据库管理系统,它为信息管理提供了开放.综合和集成的方法,包括Oracle实例和 Oracle数据库. Oracle ...

  8. Oracle Cluster Health Monitor(CHM)简介

    Oracle Cluster Health Monitor(CHM)简介 概述 Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源( ...

  9. oracle设置会计科目管理器,系列之四:ORACLE EBS基础设置要点简介(E) - season的日志 - 网易博客...

    ORACLE EBS 基础设置要点简介 九.结语 (注:网站批量发图有问题,上传后显示不清楚.点击图片打开后,质量尚可. 七.工作流 系统关于工作流的设置工作包含两部分工作,一是基于企业的特殊需要,使 ...

最新文章

  1. 阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”
  2. R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis)的语法
  3. sqlserver的基本介绍
  4. php+分针和时针重合,时钟问题—两针重合
  5. 用JAVA Excel API 实现对Excel表格的读写更新 (转)
  6. 如何在EDUIS中导出ETL字幕模板_给视频加字幕?这8个工具助力你的短视频创作!...
  7. 工作手册  教育教学总结与研究工作规范       1.总则       教育教学 总结和教育教学研究工作是发现问题、总结经验、不断提高教育教学质量的重要措施。为保障教育教学总结和教育教学研究工作
  8. 利用hexo搭建一个只属于你自己的博客
  9. 球形天空盒php,unity3d天空盒
  10. java代码整洁之道_代码整洁之道——我们是作者
  11. PT100热电阻简单介绍
  12. input取消焦点 vue_vue获取input焦点,弹框后自动获取input焦点
  13. 川希:精准引流的本质,被动涨粉的秘密。
  14. 运动蓝牙耳机什么牌子好,骑行运动耳机
  15. 【超简单】利用Python去除图片水印,太神奇了叭,你还不会嘛?(附三种方法)
  16. HLK-W801-LVGL8之横屏显示
  17. Person ReID最新论文推荐
  18. 买房后为何有装修公司找你?个人信息就卖5毛钱
  19. CET-4 week8# 细枝末节
  20. NAS-Bert——确保One-shot与Task-agnostic

热门文章

  1. CISCO NAT配置
  2. 学计算机硬盘要多大,1TB等于多少G 1TB是多大?
  3. Vibrator服务
  4. 从“小螺栓血案”谈装配体模型连接螺栓6个正确的处理方法
  5. 富文本编辑器使用 ( 手动上传图片视频 动态插入到标签中 )
  6. 用Python抓新型冠状病毒肺炎实时数据,绘制市内疫情地图
  7. Chatito生成的json数据转化为rasa可以使用的yml文件
  8. excel自然对数函数
  9. 【MySQL】MySQL autocommit 以及隐式 自动提交 语句列表
  10. android 数据存储的几种方式