Oracle数据库AWR报告
- 概念:
- 一、生成AWR报告:
- 二、查询AWR快照点:
- 三、修改AWR报告保留时间
- 四、删除AWR快照点:
概念:
AWR: " 自动工作负荷资料档案库:AWR(Automatic Workload Repository)"
自动工作负荷资料档案库AWR是为Oracle数据库组件提供服务的基础设施,通过它可以收集、维护和使用统计信息,以进行问题检测和自优化,可将这个基础设施视为存放数据库统计信息、度量等的一个数据仓库。
在默认情况下,数据库每60分钟(默认快照间隔时间为一个小时)从SGA中自动捕获统计信息,然后将其以快照的形式存储在AWR中。默认情况下,在Oracle11g和12c中快照会保留8天。
一、生成AWR报告:
需要在SQLplus下运行一名为awrrpt.sql
脚本文件
该脚本文件存放在$ORACLE_HOME/rdbms/admin
目录下
运行这个脚本的用户必须具有SELECT_CATALOG_ROLE
系统权限
还有一个名为awrsqrpt.sql
的脚本文件可以根据sql_id查询执行计划
#因为awr默认是每个小时生成一个快照点,也可以手工创建awr快照点
SQL> exec dbms_workload_repository.create_snapshot();
具体操作如下:
#SQLplus执行@?/rdbms/admin/awrrpt脚本获取AWR报告
[orcl][oracle@shuaige ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 22 11:53:18 2021
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> @?/rdbms/admin/awrrpt
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
1582977425 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类型的文件
Type Specified: html
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 1582977425 1 ORCL orcl shuaige
Using 1582977425 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: #按回车键以接受默认列出系统中的全部快照
Listing all Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
orcl ORCL 120 15 Mar 2021 01:21 1
121 15 Mar 2021 02:00 1
122 15 Mar 2021 03:00 1
123 15 Mar 2021 04:00 1
124 15 Mar 2021 05:00 1
125 15 Mar 2021 06:00 1
126 15 Mar 2021 07:00 1
127 15 Mar 2021 08:00 1
128 15 Mar 2021 09:00 1
#空格表示在收集完Snap ID为128的快照之后,数据库重新启动过
129 16 Mar 2021 01:11 1
130 16 Mar 2021 02:00 1
131 16 Mar 2021 03:00 1
132 16 Mar 2021 04:00 1
133 16 Mar 2021 05:11 1
134 16 Mar 2021 06:00 1
135 16 Mar 2021 07:00 1
136 16 Mar 2021 08:00 1
137 16 Mar 2021 09:00 1
138 17 Mar 2021 12:30 1
139 17 Mar 2021 14:00 1
140 17 Mar 2021 15:00 1
141 17 Mar 2021 16:00 1
142 17 Mar 2021 17:00 1
143 17 Mar 2021 18:00 1
144 17 Mar 2021 19:00 1
145 17 Mar 2021 20:00 1
146 17 Mar 2021 21:00 1
147 17 Mar 2021 22:00 1
148 17 Mar 2021 23:00 1
149 18 Mar 2021 00:00 1
150 18 Mar 2021 01:00 1
151 18 Mar 2021 02:00 1
152 18 Mar 2021 03:00 1
153 18 Mar 2021 04:00 1
154 18 Mar 2021 05:00 1
155 18 Mar 2021 06:00 1
156 18 Mar 2021 07:00 1
157 18 Mar 2021 08:00 1
158 18 Mar 2021 09:00 1
159 18 Mar 2021 10:00 1
160 18 Mar 2021 11:00 1
161 18 Mar 2021 12:00 1
#空格表示在收集完Snap ID为161的快照之后,数据库重新启动过
162 20 Mar 2021 04:44 1
163 20 Mar 2021 06:00 1
164 20 Mar 2021 07:00 1
165 20 Mar 2021 08:00 1
166 20 Mar 2021 09:00 1
167 20 Mar 2021 10:00 1
168 20 Mar 2021 11:00 1
169 20 Mar 2021 12:00 1
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
orcl ORCL 170 22 Mar 2021 11:04 1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap:168 #开始快照Snap ID
Begin Snapshot Id specified: 168
Enter value for end_snap: 169 #结束快照Snap ID
End Snapshot Id specified: 169
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_168_169.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name:report_11-12.html #AWR报告的名称(默认为awrrpt_1_168_169.html)
...
End of Report
</body></html>
Report written to report_11-12.html
SQL>
出现Report written to report_11-12.html
显示结果时,就表明名为report_11-12.html
的AWR报告已经生成并且存放在当前目录/home/oracle
中。
[orcl][oracle@shuaige ~]$ ll
total 1380
-rw-r--r-- 1 oracle oinstall 389566 Mar 22 12:12 report_11-12.html
将AWR从服务器上下载下来,使用浏览器查看信息
AWR部分内容如下:
AWR报告分析内容会后续补充
二、查询AWR快照点:
1、查看数据库快照相关信息
SQL> SELECT * FROM DBA_HIST_WR_CONTROL;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
1582977425 +00000 01:00:00.0 +00014 00:00:00.0 DEFAULT
2、查看数据库最小,最大快照点,如果数据库中有多个数据库快照可以指定数据库id
SQL> select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 1582977425 ;
MIN(SNAP_ID) MAX(SNAP_ID)
-------------- --------------
486 514
SQL>
三、修改AWR报告保留时间
四、删除AWR快照点:
1、删除当前数据库实例的快照点
SQL> exec dbms_workload_repository.drop_snapshot_range(514, 514, 1582977425)
2、删除当前数据库中导入的其他数据库的部分awr快照;
SQL> exec dbms_workload_repository.drop_snapshot_range(SNAP_ID, SNAP_ID, dbid)
3、删除当前数据库中其他数据库的所有awr快照;
SQL> exec dbms_swrf_internal.unregister_database(dbid)