关闭

oracle数据库学习笔记之AWR说明

标签: oracle
161人阅读 评论(0) 收藏 举报
分类:

一、AWR说明

快照由一个称为MMON的新的后台进程及其从进程自动地每小时采集一次。为了节省空间,采集的数据在7天后自动清除。快照频率和保留时间都可以由用户修改。它产生两种类型的输出:文本格式和HTML格式。

AWR使用几个表来存储采集的统计数据,所有的表都存储在新的名称为SYSAUX的特定表空间中的sys模式下,并且以WRM$_*和WRH$_*的命名格式命名。前一种类型存储元数据信息,后一种类型保存实际采集的统计数据。H代表“历史数据(historical)”而M代表“元数据(metadata)”。

在这些表上构建了几种带前缀DBA_HIST_的视图,这些视图可以用来编写自己的性能诊断工具。视图的名称直接与表相关;例如,视图DBA_HIST_SYSMETRIC_SUMMARY是在WRH$_SYSMETRIC_SUMMARY表上构建的。

注意:

statistics_level默认的是typical,在10g中表监控室激活的,如果statistics_level设置为basic,不仅不能监控表,而且将禁掉一些新功能。如:ASH、ASSM、AWR、ADDM

二、AWR使用

SQL> @?/rdbms/admin/awrrpt.sql
Current Instance
~~~~~~~~~~~~~~~~
   DB Id    DB Name Inst Num Instance
----------- ------------ -------- ------------
 1443413321 ORCL 1 PROD
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
------------ -------- ------------ ------------ ------------
* 1443413321    1 ORCL   PROD Oracle11gR2
Using 1443413321 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: 1
Listing the last day's Completed Snapshots
Snap
Instance     DB Name    Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
PROD     ORCL       1279 30 Aug 2016 00:00   1
      1280 30 Aug 2016 01:00   1
      1281 30 Aug 2016 02:00   1
      1282 30 Aug 2016 03:00   1
      1283 30 Aug 2016 04:00   1
      1284 30 Aug 2016 05:00   1
      1285 30 Aug 2016 06:00   1
      1286 30 Aug 2016 07:00   1
      1287 30 Aug 2016 08:00   1
      1288 30 Aug 2016 09:00   1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 1279
Begin Snapshot Id specified: 1279
Enter value for end_snap: 1288
End   Snapshot Id specified: 1288
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_1279_1288.html.  To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name: 
Using the report name awrrpt_1_1279_1288.html
SQL> exit
e 11.2.0.4.0 - 64bit Production
esting options
[oracle@Oracle11gR2 ~]$ ls
analyze_all.sql                p_gen_multl_sql_with_bind_v.prc
analyze_all_test.all           PRINTSQL.prc
awrrpt_1_1279_1288.html        P_SYS_GEN_CODE_TEMPLATE1.prc
awrrpt_1_847_860.html          P_SYS_GEN_CODE_TEMPLATE2.prc
coe_xfr_sql_profile.sql        sosi.sql
control.bak                    sosi.txt
db_info.sql                    temp.sql
display_cursor_9i.sql          xplan.sql
p_app_type_perf_diff_demo.prc

三、AWR操作

1、查看当前的AWR保存策略

SQL> col SNAP_INTERVAL format a20
SQL> col RETENTION format a20
SQL> select * from dba_hist_wr_control;
      DBID SNAP_INTERVAL        RETENTION            TOPNSQL
---------- -------------------- -------------------- ----------
1443413321 +00000 01:00:00.0    +00008 00:00:00.0    DEFAULT

以上结果表示,每小时产生一个SNAPSHOT,保留8天。

2、调整AWR配置

AWR配置都是通过dbms_workload_repository包进行配置

2.1、调整AWR产生snapshot的频率和保留策略

例如:将收集间隔时间修改为30分钟一次。并且保留7天时间(单位都是分钟):

SQL> exec dbms_workload_repository.modify_snapshot_settings(interval => 30,retention => 7*24*60);
PL/SQL procedure successfully completed

2.2、关闭AWR,把interval设为0则关闭自动捕捉快照

SQL> exec dbms_workload_repository.modify_snapshot_settings(interval => 0);

2.3、手工创建一个快照

SQL> exec dbms_workload_repository.create_snapshot();

2.4、查看快照

SQL> select * from sys.wrh$_active_session_history;

2.5、手工删除指定范围的快照

SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 1,high_snap_id => 1200,dbid => 1443413321);

PL/SQL procedure successfully completed

2.6、创建baseline保存这些数据用于将来分析和比较

SQL> exec dbms_workload_repository.create_baseline(start_snap_id => 1291,end_snap_id => 1293,baseline_name => 'oraclsunhua');
PL/SQL procedure successfully completed

2.7、删除baseline

SQL> exec dbms_workload_repository.drop_baseline(baseline_name => 'oraclsunhua',cascade => FALSE);
PL/SQL procedure successfully completed


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33039次
    • 积分:818
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:46篇
    • 译文:0篇
    • 评论:0条
    文章分类