通过案例学调优之--AWR基本概念

通过案例学调优之--AWR基本概念

一、Automatic Workload Repository 概念详解

Automatic Workload Repository (AWR) 收集、处理和维护用于问题诊断的性能统计信息。该数据既存在于数据块中,也存在于内存中。AWR 收集的数据可以通过报告和视图进行查看。

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

1.确定数据块 segment 访问路径和使用情况的对象统计信息

2.基于数据库活动的时间使用情况的时间模型统计信息,可在 V$SYS_TIME_MODEL 和 V$SESS_TIME_MODEL 视图中查看

3.V$SYSSTAT 和 V$SESSTAT 视图中收集的一些 sytem 和 session 的统计信息

4.按照 Elapsed time 和 CPU time 等条件在系统上筛选出的产生较高负载的 SQL 语句

5.ASH 统计信息——最近的 session 活动的历史记录

数据库默认情况下已启用 AWR 收集统计信息,它 STATISTICS_LEVEL 初始化参数来控制。STATISTICS_LEVEL 参数必须设置为 TYPICAL 或 ALL 才能启用 AWR 统计信息收集。默认的设置为 TYPICAL。将 STATISTICS_LEVEL 设置为 BASIC 将禁用许多 Oracle Database 功能,包括 AWR,所以不推荐这么设置。当 STATISTICS_LEVEL 设置为 BASIC 时,仍然可以使用 DBMS_WORKLOAD_REPOSITORY 包手动捕获 AWR 统计信息。但是许多在内存中收集的系统统计信息,如 segment 统计信息和 memory advisor 信息都将被禁用,这种情况下的手动快照捕获的统计信息可能不是完整的。

1、Snapshot

快照是 ADDM 用于性能比较的特定时期内的历史数据集合。在 11g 中,Oracle Database 每小时会自动生成性能数据的快照,并将这些统计信息在工作负载信息库中保留 8 天。您也可以手动创建快照,其实没必要这么做。快照间隔内的统计信息由 Automatic Database Diagnostic Monitor (ADDM) 进行分析。

AWR 通过比较各个快照之间的差异,根据对系统负载的影响来确定要捕获的 SQL 语句,随着时间的发展,必须捕获的 SQL 语句将逐渐减少。

2、Baseline

Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。

在 Oracle Database 中存在多种类型的 baseline;

     Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在创建 fixed baseline 之前,请认真考虑您选作 baseline 的时间段,因为该 baseline 应该代表系统处于良好的性能下运行。您可以在将来将该 baseline 与在性能较差的时间段捕获的其他 baseline 或 snapshot 进行比较分析。

 Moving Window Baseline:表示的是 AWR 保留期内存在的所有 AWR 数据。在使用自适应阈值时,它非常有用,因为数据库可以使用整个 AWR 保留期内的 AWR 数据来计算指标值。

Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。如果您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您可以重新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。因此,要增加移动窗口的大小,必须要先增加相应的 AWR 保留期限。

 Baseline Template:您可以使用 baseline template 创建将来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating

利用 single baseline template,您可以为将来某个单独的连续时间段创建 baseline。该技术在某些情况下非常有用。例如,如果您想捕获下周计划的系统测试期间的 AWR 数据,您可以创建一个 single baseline template 来自动捕获测试发生的时间段的统计数据。

利用 repeating baseline template ,可以根据重复的时间计划创建和删除 baseline。当您希望 Oracle Database 自动持续地捕获连续时间段的统计数据时,这非常有用。例如,您可能需要在长达一个月内捕获每周一早上的 AWR 数据。在这种情况下,您可以创建一个 repeating baseline template ,以在每周一自动创建 baseline,在指定的过期期限内自动删除过时的 baseline。

案例:

AWR可以在OEM图形界面或者在sqlplus界面下应用

1、在OEM下启用

启动listener:
[[email protected] admin]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-OCT-2014 17:14:31
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/RH6/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RH6)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=RH6)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                31-OCT-2014 17:14:31
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/RH6/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RH6)(PORT=1521)))
The listener supports no services
The command completed successfully

启动OEM Service:
[[email protected] admin]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://RH6:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ........... started.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/RH6_prod/sysman/log

[[email protected] admin]$ netstat -an |grep 1158
tcp        0      0 :::1158                     :::*                        LISTEN

[[email protected] admin]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://RH6:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/RH6_prod/sysman/log

通过OEM管理Database

在性能页面查看snapshot

建立AWR Report

查看awr report

2、通过sqlplus创建awr report

1)、查看snapshot
02:33:25 [email protected] prod >desc dba_hist_snapshot;
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 SNAP_ID                                                           NOT NULL NUMBER
 DBID                                                              NOT NULL NUMBER
 INSTANCE_NUMBER                                                   NOT NULL NUMBER
 STARTUP_TIME                                                      NOT NULL TIMESTAMP(3)
 BEGIN_INTERVAL_TIME                                               NOT NULL TIMESTAMP(3)
 END_INTERVAL_TIME                                                 NOT NULL TIMESTAMP(3)
 FLUSH_ELAPSED                                                              INTERVAL DAY(5) TO SECOND(1)
 SNAP_LEVEL                                                                 NUMBER
 ERROR_COUNT                                                                NUMBER
 SNAP_FLAG                                                                  NUMBER
 
02:22:53 [email protected] prod >col  BEGIN_INTERVAL_TIME for a40
02:23:04 [email protected] prod >col END_INTERVAL_TIME for a40
02:23:13 [email protected] prod >select SNAP_ID,dbid,SNAP_LEVEL,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME from dba_hist_snapshot
   SNAP_ID       DBID SNAP_LEVEL BEGIN_INTERVAL_TIME                      END_INTERVAL_TIME
---------- ---------- ---------- ---------------------------------------- ----------------------------------------
       114  219724276          1 04-NOV-14 01.29.48.000 AM                04-NOV-14 01.41.01.518 AM
       115  219724276          1 04-NOV-14 01.41.01.518 AM                04-NOV-14 02.01.49.722 AM
       116  219724276          1 04-NOV-14 02.01.49.722 AM                04-NOV-14 02.02.31.757 AM
       
2)、生成awr report
02:23:13 [email protected] prod >@?/rdbms/admin/awrrpt
Current Instance
~~~~~~~~~~~~~~~~
   DB Id    DB Name      Inst Num Instance
----------- ------------ -------- ------------
  219724276 PROD                1 prod
Elapsed: 00:00:00.05
Elapsed: 00:00:00.00
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter ‘html‘ for an HTML report, or ‘text‘ for plain text
Defaults to ‘html‘
Enter value for report_type: html
Type Specified:  html
Elapsed: 00:00:00.00
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
  219724276         1 PROD         prod         RH6.51CTO提醒您,请勿滥发广告!
  219724276         1 PROD         prod         rh6.cuug.net
* 219724276         1 PROD         prod         RH6
Using  219724276 for database Id
Using          1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.
Enter value for num_days: 1
Listing the last day‘s Completed Snapshots
                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
prod         PROD               114 04 Nov 2014 01:41      1
                                115 04 Nov 2014 02:01      1
                                116 04 Nov 2014 02:02      1

  3)查看report

时间: 2024-12-19 00:34:40

通过案例学调优之--AWR基本概念的相关文章

通过案例学调优之--AWR BaseLine管理

通过案例学调优之--AWR BaseLine管理 BaseLine Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较.Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留. 在 Oracle Database 中存在多种类型的 baseline:      Fixed Baseline:fixed baseline 表示的是您指定的一个固定的.连续的时间段.在创建 fixed baseline 之前,

通过案例学调优之--AWR baseline对比生成AWR报告

通过案例学调优之--AWR Baseline对比生成AWR报告 一.建立Baseline 查看snapshot: 16:46:08 [email protected] prod >select SNAP_ID,BEGIN_INTERVAL_TIME from dba_hist_snapshot;    SNAP_ID BEGIN_INTERVAL_TIME ---------- -----------------------------------------------------------

通过案例学调优之--分区表基本概念

通过案例学调优之--分区表基本概念 Introduction to Partitioning Partitioning addresses key issues in supporting very large tables and indexes by letting you decompose them into smaller and more manageable pieces called partitions. SQL queries and DML statements do no

通过案例学调优之--AWR Snapshot管理

默认情况下,Oracle Database 每小时产生一次快照,并将统计信息在工作负载信息库中保留 8 天.如有必要,您可以使用 DBMS_WORKLOAD_REPOSITORY 包中的一些存储过程手动创建.删除和修改快照.要调用这些存储过程,用户必须授予 DBA 角色. 1.查看快照 03:27:55 [email protected] prod >select SNAP_ID,dbid,SNAP_LEVEL,BEGIN_INTERVAL_TIME from dba_hist_snapshot

通过案例学调优之--Oracle Cluster Table

通过案例学调优之--Oracle Cluster Table About Clusters A cluster provides an optional method of storing table data. A cluster is made up of a group of tables that share the same data blocks. The tables are grouped together because they share common columns an

通过案例学调优之--Oracle Time Model(时间模型)

通过案例学调优之--Oracle Time Model(时间模型) 数据库时间  优化不仅仅是缩短等待时间.优化旨在缩短最终用户响应时间和(或)尽可能减少每个请求占用的平均资源.有时这些目标可同时实现,而有时则需要进行折衷(如在并行查询时).通常可以认为,优化就是避免以浪费的方式占用或保留资源. 对数据库发出的任何请求都由两个不同的段组成:等待时间(数据库等待时间)和服务时间(数据库 CPU 时间).等待时间是各种数据库实例资源的所有等待时间的总和.CPU 时间是实际处理请求时消耗的时间的总和.

通过案例学调优之--SQL Profile

通过案例学调优之--SQL Profile 一.什么是SQL Profile(概要) SQL Profile在性能优化中占有一个重要的位置. MOS里这么描述SQL Profile: SQL Profile是10g中的新特性,作为自动SQL调整过程的一部分,由Oracle企业管理器来管理.除了OEM,SQL Profile可以通过DBMS_SQLTUNE包来进行管理. 查询优化器有时候会因为缺乏足够的信息,而对一条SQL语句做出错误的估计,生成糟糕的执行计划.而自动SQL调整通过SQL概要分析来

通过案例学调优之--Oracle参数(db_file_multiblock_read_count)

通过案例学调优之--Oracle参数(db_file_multiblock_read_count) 应用环境: 操作系统: RedHat EL55 Oracle:   Oracle 10gR2   Oracle DB_FILE_MULTIBLOCK_READ_COUNT是Oracle比较重要的一个全局性参数,可以影响系统级别及sessioin级别.主要是用于设置最小化表扫描时Oracle一次按顺序能够读取的数据块数.通常情况下,我们看到top events中的等待事件db file scatte

通过案例学调优之--模拟buffer busy waits事件

通过案例学调优之--模拟buffer busy waits事件 buffer busy waits等待事件     Wait occurs when a session attempts to access a block in memory, is denied and must wait until the buffer becomes available. This event happens because a buffer is either being read into the b