AWR报告

Posted 满格

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWR报告相关的知识,希望对你有一定的参考价值。

(一) AWR报告介绍

AWR全称Automatic Workload Repository,自动工作负载库。在Oracle 10g之前,用户连接到数据库,产生session,session信息保存在v$session中,处于等待的session被复制一份到v$session_wait中,当会话中止时,本次会话产生的v$session和v$session_wait信息会丢失。10g以后,Oracle保留了v$session_wait的信息,并新增了v$active_session_history(ASH)视图,记录每个活动session在v$session_wait中最近10次的信息。

ASH采样数据保存在内存中,但是分配给ASH的内存是有限的,当内存占满,旧的数据将被覆盖。并且,一旦重启数据库或服务器,内存中的信息将会丢失。所以,想要长期保存ASH的数据信息是不可能的。

在Oracle 10g中,产生了永久保存ASH的方法,就是AWR。AWR的工作策略是:每小时对v$active_session_history进行采样,并将信息保存到磁盘中,保留7天,7天后旧的记录会被覆盖。这些采样信息被保存在视图wrh$_active_session_history中。采集频率(1hours)和保存期限(7 day)是可以调整的。在Oracle Database 11g中,快照数据的默认保留期已经从七天更改为八天,以确保捕获整周的性能数据。

(二) 创建AWR报告

(1) 查看Oracle数据库是否启用AWR报告功能

show parameter statistics_level

结果如下说明开启了AWR报告

SQL> show parameter statistics_level;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

statistics_level string TYPICAL

(2) 快照(Snapshot)

每隔1小时,内存监控进程(MMON)自动采集一次统计信息,并把这些信息放到负载库中,一次采样就是一个快照,为了节省时间,采集的数据在7天(Oracle 11g为8天)后清除。

(1) 创建过程

先指定报告存放位置,目前发现linux的oracle用户切换到哪个目录,awr报告就保存在哪里。

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> @?/rdbms/admin/awrrpt.sql                      /*执行脚本*/

Current Instance
~~~~~~~~~~~~~~~~

   DB Id    DB Name	 Inst Num Instance
----------- ------------ -------- ------------
 1464270464 ORCL		1 orcl


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                      /*选择报告类型(html和text)*/

Type Specified:  html


Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name	   Instance	Host
------------ -------- ------------ ------------ ------------
* 1464270464	    1 ORCL	   orcl 	localhost.lo
						caldomain

Using 1464270464 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: 2             /*生成报告的天数*/

Listing the last 2 days of Completed Snapshots

							Snap
Instance     DB Name	    Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
orcl	     ORCL		 28 06 Mar 2017 15:02	   1
				 29 06 Mar 2017 16:00	   1
				 30 06 Mar 2017 17:00	   1

				 31 07 Mar 2017 10:47	   1
				 32 07 Mar 2017 12:00	   1
				 33 07 Mar 2017 13:10	   1
				 34 07 Mar 2017 14:00	   1
				 35 07 Mar 2017 15:00	   1
				 36 07 Mar 2017 16:00	   1
				 37 07 Mar 2017 17:00	   1



Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 31            /*开始快照*/
Begin Snapshot Id specified: 31

Enter value for end_snap: 37             /*结束快照*/
End   Snapshot Id specified: 37



Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_31_37.html.  To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name:               /*awr报告名称*/

 

 

*疑问:awr报告是在服务器上生成的,linux/unix没有图形显示方式,如何查看。

 

部分资料来源于:http://www.cnblogs.com/lanzi/archive/2011/03/07/1975096.html

以上是关于AWR报告的主要内容,如果未能解决你的问题,请参考以下文章

使用AWR报告来诊断数据库性能问题

Oracle 11g AWR 系列五:如何生成 AWR 报告?

如何生成Oracle AWR报告

使用AWR生成一条sql的执行统计报告

Oracle AWR报告提取方法

AWR报告导出