客户的生产系统总是那么重要,一般不会让你长时间的在他们的生产机器上做操作,但是分析和生成AWR报告都是一个相对耗时的工作,当然只生成一个AWR报告是不费时的,但是要对系统进行详细分析的时候,我们可能需要的是一段时间内的所有AWR数据,需要根据实际情况进行选取。这时我们就需要将客户的AWR数据导出,然后进行分析,这个操作主要涉及AWR数据导出、导入和生成报告三个阶段,下面对每个步骤进行详细描述。
1、导出

SQL> @?/rdbms/admin/awrextr.sql
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Disclaimer: This SQL/Plus script should only be called under
the guidance of Oracle Support.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


~~~~~~~~~~~~~
AWR EXTRACT
~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ This script will extract the AWR data for a range of snapshots ~
~ into a dump file. The script will prompt users for the ~
~ following information: ~
~ (1) database id ~
~ (2) snapshot range to extract ~
~ (3) name of directory object ~
~ (4) name of dump file ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Databases in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id DB Name Host
------------ ------------ ------------
* 2182516689 GYL rac01
* 2182516689 GYL rac02

The default database id is the local one: '2182516689'. To use this
database id, press <return> to continue, otherwise enter an alternative.

Enter value for dbid: 2182516689 <<<<<<<输入DBID

Using 2182516689 for Database ID


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:7 <<<<<<<输入需要导出数据的天数

Listing the last 7days of Completed Snapshots

DB Name Snap Id Snap Started
------------ --------- ------------------
GYL 37 07 Nov 2014 10:05
38 07 Nov 2014 11:00
39 07 Nov 2014 12:00
40 07 Nov 2014 13:00
41 07 Nov 2014 14:00
42 07 Nov 2014 15:00
43 07 Nov 2014 16:00
44 10 Nov 2014 13:51
45 10 Nov 2014 15:00
46 10 Nov 2014 16:00
47 12 Nov 2014 14:11

DB Name Snap Id Snap Started
------------ --------- ------------------
GYL 48 12 Nov 2014 14:37
49 12 Nov 2014 16:00
50 12 Nov 2014 17:00
51 12 Nov 2014 18:00
52 13 Nov 2014 10:16
53 13 Nov 2014 11:00
54 13 Nov 2014 12:00
55 13 Nov 2014 13:00
56 13 Nov 2014 14:00
57 13 Nov 2014 16:21


Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 52 <<<<<<< 输入起始snap_id
Begin Snapshot Id specified: 52

Enter value for end_snap: 57 <<<<<<< 输入结束snap_id
End Snapshot Id specified: 57


Specify the Directory Name
~~~~~~~~~~~~~~~~~~~~~~~~~~

Directory Name Directory Path
------------------------------ -------------------------------------------------
DATA_PUMP_DIR /oracle/app/oracle/product/10.2/db_1/rdbms/log/
ORACLE_OCM_CONFIG_DIR /oracle/app/oracle/product/10.2/db_1/ccr/state

Choose a Directory Name from the above list (case-sensitive).

Enter value for directory_name: DATA_PUMP_DIR

Using the dump directory: DATA_PUMP_DIR <<<<<<< 指定一个存放导出数据的directory(如果没有需要自己建立一个directory)

Specify the Name of the Extract Dump File
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The prefix for the default dump file name is awrdat_52_57.
To use this name, press <return> to continue, otherwise enter
an alternative.

Enter value for file_name: gyl_rac01

...........省略部分输出.............
Master table \"SYS\".\"SYS_EXPORT_TABLE_01\" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TABLE_01 is:
/oracle/app/oracle/product/10.2/db_1/rdbms/log/gyl_rac01.dmp
Job \"SYS\".\"SYS_EXPORT_TABLE_01\" successfully completed at 12:38:07 2、导入
先将上面生成的dump文件拷贝到目标机器的一个directory下,然后按如下操作进行导入。

SQL> @$ORACLE_HOME/rdbms/admin/awrload.sql
~~~~~~~~~~
AWR LOAD
~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ This script will load the AWR data from a dump file. The ~
~ script will prompt users for the following information: ~
~ (1) name of directory object ~
~ (2) name of dump file ~
~ (3) staging schema name to load AWR data into ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Specify the Directory Name
~~~~~~~~~~~~~~~~~~~~~~~~~~

Directory Name Directory Path
------------------------------ -------------------------------------------------
DATA_FILE_DIR /oracle/app/oracle/product/11.2.0/db_1/demo/schem
a/sales_history/

DATA_PUMP_DIR /oracle/app/oracle/admin/gyl/dpdump/
LOG_FILE_DIR /oracle/app/oracle/product/11.2.0/db_1/demo/schem
a/log/

MEDIA_DIR /oracle/app/oracle/product/11.2.0/db_1/demo/schem
a/product_media/

ORACLE_OCM_CONFIG_DIR /oracle/app/oracle/product/11.2.0/db_1/ccr/state

Directory Name Directory Path
------------------------------ -------------------------------------------------
SS_OE_XMLDIR /oracle/app/oracle/product/11.2.0/db_1/demo/schem
a/order_entry/

SUBDIR /oracle/app/oracle/product/11.2.0/db_1/demo/schem
a/order_entry//2002/Sep

XMLDIR /oracle/app/oracle/product/11.2.0/db_1/rdbms/xml

Choose a Directory Name from the list above (case-sensitive).

Enter value for directory_name: DATA_PUMP_DIR <<<<<<< 输入dump所在directory

Using the dump directory: DATA_PUMP_DIR

Specify the Name of the Dump File to Load
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Please specify the prefix of the dump file (.dmp) to load:

Enter value for file_name: gyl_rac01 <<<<<<< 输入dump文件名,不要带后缀
Loading from the file name: gyl_rac01.dmp

Staging Schema to Load AWR Snapshot Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The next step is to create the staging schema
where the AWR snapshot data will be loaded.
After loading the data into the staging schema,
the data will be transferred into the AWR tables
in the SYS schema.


The default staging schema name is AWR_STAGE.
To use this name, press <return> to continue, otherwise enter
an alternative.

Enter value for schema_name: AWR_STAGE <<<<<<< 输入一个schema名,用于导入,导入结束后自动会删除该schema
Using the staging schema name: AWR_STAGE

Choose the Default tablespace for the AWR_STAGE user
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Choose the AWR_STAGE users's default tablespace. This is the
tablespace in which the AWR data will be staged.

TABLESPACE_NAME CONTENTS DEFAULT TABLESPACE
------------------------------ --------- ------------------
EXAMPLE PERMANENT
SYSAUX PERMANENT *
TEST PERMANENT
USERS PERMANENT

Pressing <return> will result in the recommended default
tablespace (identified by *) being used.

Enter value for default_tablespace: SYSAUX <<<<<<< 输入存放AWR数据的表空间名

Using tablespace SYSAUX as the default tablespace for the AWR_STAGE


Choose the Temporary tablespace for the AWR_STAGE user
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Choose the AWR_STAGE user\'s temporary tablespace.

TABLESPACE_NAME CONTENTS DEFAULT TEMP TABLESPACE
------------------------------ --------- -----------------------
TEMP TEMPORARY *

Pressing <return> will result in the database\ 3、生成报告
在目标机器上生成报告

SQL> @?/rdbms/admin/awrrpti.sql

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


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

DB Id Inst Num DB Name InstanceHost
------------ -------- ------------ ------------ ------------
* 2184766987 1 GYL gyloracle11g
2182516689 2 GYL gyl2 rac02
2182516689 1 GYL gyl1 rac01

Enter value for dbid: 2182516689 <<<<<<< 输入dbid
Using 2182516689 for database Id
Enter value for inst_num: 1 <<<<<<< 输入inst_num号
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
------------ ------------ --------- ------------------ -----
gyl1 GYL 52 13 Nov 2014 10:16 1
53 13 Nov 2014 11:00 1
54 13 Nov 2014 12:00 1
55 13 Nov 2014 13:00 1
56 13 Nov 2014 14:00 1

57 13 Nov 2014 16:21 1



Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 52 <<<<<<< 输入起始snap_id
Begin Snapshot Id specified: 52

Enter value for end_snap: 56 <<<<<<< 输入结束snap_id
End Snapshot Id specified: 56



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

Enter value for report_name: /oracle/app/oracle/admin/gyl/dpdump/awr_rac.html 整个过程都很简单,但有几点需要注意:
1、不能将同一个数据库的AWR数据导出后再导入到自己,这样会遇到下面的错误
ERROR at line 1:
ORA-20105: unable to move AWR data to SYS
ORA-06512: at "SYS.DBMS_SWRF_INTERNAL", line 2950
ORA-20107: not allowed to move AWR data for local dbid
ORA-06512: at line 3
2、在导入的时候,在输入值时,尽量用大写;
3、如果不再需要的数据,可以用如下存储过程删除:
SQL> exec DBMS_SWRF_INTERNAL.UNREGISTER_DATABASE(bdid); --将dbid换成需要删除的dbid号