重新发现Oracle太美之awr相关脚本简单介绍
大家知道在$ORACLE_HOME/rdbms/admin下,有如下的相关脚本(我的环境为11.2.0.4.2):
[oracle@rh64 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@rh64 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
这个脚本大家都不陌生了吧,我们几乎去分析系统性能的时候都要去执行下这个脚本。我们来看看这里面有啥好玩的东西。
[oracle@rh64 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 @@?/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导入信息的脚本,和上面的配合使用
-----------太烂,没啥干货,以后没有干货的东西坚决不写!