http://blog.csdn.net/wildwave/article/details/6838906

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视图

[plain] view plaincopy
  1. DBA_HIST_ACTIVE_SESS_HISTORY 展示内存中活动会话历史信息
  2. DBA_HIST_BASELINE 展示捕获的基线的信息
  3. DBA_HIST_BASELINE_DETAILS 展示特定基线的明细信息
  4. DBA_HIST_BASELINE_TEMPLATE 基线模板相关信息
  5. DBA_HIST_DATABASE_INSTANCE 数据库环境
  6. DBA_HIST_DB_CACHE_ADVICE 根据历史数据预测在不同的cache size下的物理读
  7. DBA_HIST_DISPATCHER 每个snapshot下调度进程的信息
  8. DBA_HIST_DYN_REMASTER_STATS 动态remastering进程的统计信息
  9. DBA_HIST_IOSTAT_DETAIL 按未见类型和功能来统计的历史I/O信息
  10. DBA_HIST_SHARED_SERVER_SUMMARY 共享服务器的统计信息
  11. DBA_HIST_SNAPSHOT 快照信息
  12. DBA_HIST_SQL_PLAN 执行计划
  13. DBA_HIST_WR_CONTROL AWR控制信息

生成AWR报告

生成一个典型的AWR报告:
[plain] view plaincopy
  1. 1. At the SQL prompt, enter:
  2. @$ORACLE_HOME/rdbms/admin/awrrpt.sql
  3. 2. Specify whether you want an HTML or a text report:
  4. Enter value for report_type: text
  5. In this example, a text report is chosen.
  6. 3. Specify the number of days for which you want to list snapshot IDs.
  7. Enter value for num_days: 2
  8. A list of existing snapshots for the specified time range is displayed. In this
  9. example, snapshots captured in the last 2 days are displayed.
  10. 4. Specify a beginning and ending snapshot ID for the workload repository report:
  11. Enter value for begin_snap: 150
  12. Enter value for end_snap: 160
  13. In this example, the snapshot with a snapshot ID of 150 is selected as the
  14. beginning snapshot, and the snapshot with a snapshot ID of 160 is selected as the
  15. ending snapshot.
  16. 5. Enter a report name, or accept the default report name:
  17. Enter value for report_name:
  18. Using the report name awrrpt_1_150_160
  19. In this example, the default name is accepted and an AWR report named
  20. 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对比报告的过程如下:

[plain] view plaincopy
  1. 1. At the SQL prompt, enter:
  2. @$ORACLE_HOME/rdbms/admin/awrddrpt.sql
  3. 2. Specify whether you want an HTML or a text report:
  4. Enter value for report_type: html
  5. In this example, an HTML report is chosen.
  6. 3. Specify the number of days for which you want to list snapshot IDs in the first
  7. time period.
  8. Enter value for num_days: 2
  9. A list of existing snapshots for the specified time range is displayed. In this
  10. example, snapshots captured in the last 2 days are displayed.
  11. 4. Specify a beginning and ending snapshot ID for the first time period:
  12. Enter value for begin_snap: 102
  13. Enter value for end_snap: 103
  14. In this example, the snapshot with a snapshot ID of 102 is selected as the
  15. beginning snapshot, and the snapshot with a snapshot ID of 103 is selected as the
  16. ending snapshot for the first time period.
  17. 5. Specify the number of days for which you want to list snapshot IDs in the second
  18. time period.
  19. Enter value for num_days2: 1
  20. A list of existing snapshots for the specified time range is displayed. In this
  21. example, snapshots captured in the previous day are displayed.
  22. 6. Specify a beginning and ending snapshot ID for the second time period:
  23. Enter value for begin_snap2: 126
  24. Enter value for end_snap2: 127
  25. 7. Enter a report name, or accept the default report name:
  26. Enter value for report_name:
  27. Using the report name awrdiff_1_102_1_126.txt
  28. In this example, the default name is accepted and an AWR report named
  29. 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

转载于:https://blog.51cto.com/garlics/1131892

ORACLE AWR简介相关推荐

  1. oracle awr top5,ORACLE AWR简介

    Automatic Workload Repository(AWR)收集.处理和维护性能系统信息,为性能调优的问题检测提供了有力的帮助. AWR收集和处理的统计信息包括: 1. 段的统计信息: 2. ...

  2. Oracle数据类型简介【转贴】

    为什么80%的码农都做不了架构师?>>>    Oracle数据类型简介 一.概述 在ORACLE8中定义了:标量(SCALAR).复合(COMPOSITE).引用(REFERENC ...

  3. Oracle AWR 报告中 No data exists for this section of the report 说明

    在AWR中,如果有部分选项是:Nodata exists for this section of the report.那么属正常现象. 如: 那么现在看一个有数据的AWR: 在下面的这个图中就显示了 ...

  4. Oracle Awr

    About Oracle AWR Oracle AWR is a powerful monitoring utility bundle with Oracle Database from 10g. O ...

  5. oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】

    http://blog.csdn.net/tianlesoftware/article/details/17286523 一. AWR 概述 之前整理过一篇AWR 的说明的文档: Oracle AWR ...

  6. 1、oracle数据库简介

    1.ORACLE数据库简介 数据库指的是存储和管理数据的仓库,是一种文件集合(包括数据文件.临时文件.日志文件和控制文件),我们一般所说的数据库指的是数据库管理系统,一种用于操作数据库的软件,简称DB ...

  7. 导出oracle awr分析报告,配置oracle内存参数,察看表空间使用率

    cmd 命令生成awr报告: cmd 窗口 输入 -> Sqlplus sys/orcl@orcl as sysdba  (sys登陆oracle) . 导出awr命令 @?/rdbms/adm ...

  8. oracle gets/exec 单位,ORACLE AWR使用基础

    ORACLE AWR使用基础 Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库(AWR).Oracle 建议用户用这个取代Statspack.AWR 实质上是一个O ...

  9. oracle的partition,ORACLE PARTITION简介

    一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而治之"的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的.单独 ...

最新文章

  1. android中string.xml使用总结,string.xml 的作用以及意义——国际化应用
  2. CTFshow php特性 web112
  3. php网页轮播图,JavaScript_JavaScript实现图片轮播的方法,本文实例讲述了JavaScript实现图 - phpStudy...
  4. 北斗信号服务器解算,GPS/北斗定位解算算法的研究
  5. [Java基础]类加载
  6. 木兰编程语言重现——范围语法“下限..上限 by 间隔”,重构
  7. java解析c的结构体_解析C语言中结构体struct的对齐问题
  8. 【java】二维数组的应用
  9. 使用java类加载器,报异常java.nio.file.InvalidPathException
  10. 极简代码(三)—— 向量加法
  11. 【No.11 默认实参的匹配】
  12. fastjson:map转json字符串、json字符串转map、map根据key名拿value、JSONArray转list
  13. ZipArchive
  14. day13、1 - 抓包--科来软件使用
  15. 惠普触控板使用指南_惠普笔记本触摸鼠标怎么设置
  16. linux安装rlwrap 解决sqlplus不能上下翻问题
  17. js中常用的Math函数方法
  18. C语言里文字颜色色和背景颜色设置
  19. nsis制作一个外部exe启动器(exe嵌套exe)
  20. Codeforces gym 100685 A. Ariel 暴力

热门文章

  1. 90%测试猿都想学的Jmeter技能,你get吗?
  2. linux如何安装阵列卡驱动程序,Linux安装阵列卡驱动及档.doc
  3. 插件怎么用_PPT插件怎么用?用好了10s就能给出一个动画特效,不好看不要钱
  4. html软件dr,了解HTML锚点 - osc_mbqdr3w5的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. java byte 图片浏览器直接显示_在imge控件中直接显示图片(图片是byte[]格式)
  6. 云服务器学习linux_云服务器怎么选linux系统
  7. 中数据逆序输出_C语言 | 建立链表,输出各结点中的数据
  8. 小分子php蛋白,如何研究小分子抑制蛋白降解途径? - 分子生物 - 小木虫 - 学术 科研 互动社区...
  9. DataParallel work on cpu
  10. 卷积神经网络处理猫和狗图片