大家知道在$ORACLE_HOME/rdbms/admin下,有例如以下的相关脚本(我的环境为11.2.0.4.2):
[[email protected] ~]$ cd $ORACLE_HOME/rdbms/admin
[[email protected] admin]$ ls -ltr awr*
-rw-r--r-- 1 oracle oinstall ?1999 Oct 24 ?2003 awrrpt.sql
-rw-r--r-- 1 oracle oinstall 49166 Sep ?1 ?2004 awrinfo.sql
-rw-r--r-- 1 oracle oinstall ?1469 Jan ?5 ?2005 awrsqrpt.sql
-rw-r--r-- 1 oracle oinstall ?2462 Jan ?5 ?2005 awrinpnm.sql
-rw-r--r-- 1 oracle oinstall 20892 May 23 ?2005 awrddinp.sql
-rw-r--r-- 1 oracle oinstall ?2005 May 27 ?2005 awrddrpt.sql
-rw-r--r-- 1 oracle oinstall ?8603 Mar ?3 ?2006 awrinput.sql
-rw-r--r-- 1 oracle oinstall ?1148 Dec ?1 ?2006 awrblmig.sql
-rw-r--r-- 1 oracle oinstall ?7440 Mar 13 ?2008 awrginp.sql
-rw-r--r-- 1 oracle oinstall 16457 Mar 13 ?2008 awrgdinp.sql
-rw-r--r-- 1 oracle oinstall 11082 Mar 24 ?2009 awrextr.sql
-rw-r--r-- 1 oracle oinstall ?1523 Apr 29 ?2009 awrgrpt.sql
-rw-r--r-- 1 oracle oinstall ?1897 Apr 29 ?2009 awrgdrpt.sql
-rw-r--r-- 1 oracle oinstall 10368 Jul 15 ?2009 awrload.sql
-rw-r--r-- 1 oracle oinstall ?6803 Jul 25 ?2011 awrsqrpi.sql
-rw-r--r-- 1 oracle oinstall ?7704 Jul 25 ?2011 awrrpti.sql
-rw-r--r-- 1 oracle oinstall ?6444 Jul 25 ?2011 awrgrpti.sql
-rw-r--r-- 1 oracle oinstall ?7393 Jul 25 ?2011 awrgdrpi.sql
-rw-r--r-- 1 oracle oinstall ?7450 Jul 25 ?2011 awrddrpi.sql
我们一一来介绍下:
1.awrrpt.sql
这个脚本大家都不陌生了吧。我们差点儿去分析系统性能的时候都要去执行下这个脚本。
我们来看看这里面有啥好玩的东西。
[[email protected] admin]$ cat awrrpt.sql
Rem $Header: awrrpt.sql 24-oct-2003.12:04:53 pbelknap Exp $
Rem
Rem awrrpt.sql
Rem
Rem Copyright (c) 1999, 2003, Oracle Corporation. ?All rights reserved. ?
Rem
Rem ? ?NAME
Rem ? ? ?awrrpt.sql
Rem
Rem ? ?DESCRIPTION
Rem ? ? ?This script defaults the dbid and instance number to that of the
Rem ? ? ?current instance connected-to, then calls awrrpti.sql to produce
Rem ? ? ?the Workload Repository report.
Rem
Rem ? ?NOTES
Rem ? ? ?Run as select_catalog privileges. ?
Rem ? ? ?This report is based on the Statspack report.
Rem
Rem ? ? ?If you want to use this script in an non-interactive fashion,
Rem ? ? ?see the ‘customer-customizable report settings‘ section in
Rem ? ? ?awrrpti.sql
Rem
Rem ? ?MODIFIED ? (MM/DD/YY)
Rem ? ?pbelknap ? ?10/24/03 - swrfrpt to awrrpt?
Rem ? ?pbelknap ? ?10/14/03 - moving params to rpti?
Rem ? ?pbelknap ? ?10/02/03 - adding non-interactive mode cmnts?
Rem ? ?mlfeng ? ? ?09/10/03 - heading on?
Rem ? ?aime ? ? ? ?04/25/03 - aime_going_to_main
Rem ? ?mlfeng ? ? ?01/27/03 - mlfeng_swrf_reporting
Rem ? ?mlfeng ? ? ?01/13/03 - Update comments
Rem ? ?mlfeng ? ? ?07/08/02 - swrf flushing
Rem ? ?mlfeng ? ? ?06/12/02 - Created
Rem
--
-- Get the current database/instance information - this will be used?
-- later in the report along with bid, eid to lookup snapshots
set echo off heading on underline on;
column inst_num ?heading "Inst Num" ?new_value inst_num ?format 99999;
column inst_name heading "Instance" ?new_value inst_name format a12;
column db_name ? heading "DB Name" ? new_value db_name ? format a12;
column dbid ? ? ?heading "DB Id" ? ? new_value dbid ? ? ?format 9999999999 just c;
prompt
prompt Current Instance
prompt ~~~~~~~~~~~~~~~~
select d.dbid ? ? ? ? ? ?dbid
? ? ?, d.name ? ? ? ? ? ?db_name
? ? ?, i.instance_number inst_num
? ? ?, i.instance_name ? inst_name
? from v$database d,
? ? ? ?v$instance i;
@@awrrpti
undefine num_days;
undefine report_type;
undefine report_name;
undefine begin_snap;
undefine end_snap;
--
-- End of file
------>>>看到说明了吗?这个脚本仅仅能抓取本演示例子的性能信息,事实上这个脚本是调用的awrrpti.sql,AWR的开发是基于曾经9i的Statspack report.
从10G開始才有AWR的。曾经9I都是statspack,曾经都是经常听老DBA说statspack,表示不明觉历。同一时候要执行这个脚本起码要有select_catalog的权限。
因为这个是交付式的,假设你不想使用交互式,仅仅能使用awrrpti.sql了。
2.awrrpti.sql
这个就是原始的生成AWR的脚本了,里面说了执行此脚本要选择两个对应的时间点。执行须要以SYSDBA用户,使用这个脚本能够在本实例取另外一个实例的
AWR报告。
假设你想是使用非交互式模式,能够參考以下的例子:
Rem ? ? ?If you want to use this script in an non-interactive fashion,
Rem ? ? ?without executing the script through awrrpt, then
Rem ? ? ?do something similar to the following:
Rem
Rem ? ? ?define ?inst_num ? ? = 1;
Rem ? ? ?define ?num_days ? ? = 3;
Rem ? ? ?define ?inst_name ? ?= ‘Instance‘;
Rem ? ? ?define ?db_name ? ? ?= ‘Database‘;
Rem ? ? ?define ?dbid ? ? ? ? = 4;
Rem ? ? ?define ?begin_snap ? = 10;
Rem ? ? ?define ?end_snap ? ? = 11;
Rem ? ? ?define ?report_type ?= ‘text‘;
Rem ? ? ?define ?report_name ?= /tmp/swrf_report_10_11.txt
Rem ? ? [email protected]@?
/rdbms/admin/awrrpti
3.awrinfo.sql
这个脚本输出些awr的一些信息,报告系统平台,AWR所占的空间大小等等,默认是txt的格式,大家能够看看。
4.awrsqrpt.sql
这个脚本是输出SQL报告的脚本,后台调用的awrsqrpti.sql
5.awrsqrpi.sql
这个脚本是取SQL信息报告的脚本,相同能够自己定义,能够採用非交付模式
6.awrinpnm.sql
这个脚本执行了一篇,没看出详细啥作用
7.awrddinp.sql
没看出来有啥用啊
8.awrgrpt.sql/awrgrpti.sql
这个比較好用啊。取全局的AWR报告。
只是要11G以上才有的。看RAC的网卡流量什么的比較好用。只是不知道准不准
9.awrddrpt.sql/awrddrpi.sql
对照AWR报告的脚本,在分析性能的时候比較经常使用
10.awrgdrpt.sql/awrgdrpi.sql
全局的AWR报告
11.awrinput.sql
没看出来有价值的东西
12.awrblmig.sql
AWR基线迁移的脚本,升级的时候可能会用到
13.awrginp.sql
AWR全局的input的脚本
14.awrgdinp.sql
awrgdinp.sql - AWR Glopal Compare Period Report Input variables
15.awrextr.sql
AWR导出数据库信息的脚本。在迁移的时候可能会用到
16.awrload.sql
AWR导入信息的脚本。和上面的配合使用
-----------太烂。没啥干货。以后没有干货的东西坚决不写。