ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【听海日志】之ORACLE 10G AWR安装使用

【听海日志】之ORACLE 10G AWR安装使用

原创 Linux操作系统 作者:听海★蓝心梦 时间:2012-05-12 08:33:11 0 删除 编辑

一、用awr生成报告

SQL> SQLPLUS / AS SYSDBA

SQL> var snap_id number;

SQL> exec:snap_id:=dbms_workload_repository.create_snapshot;

SQL> print snap_id;

       SNAP_ID

       --------

       1182

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

二、前的AWR保存策略

SQL> select * from dba_hist_wr_control;

DBID        SNAP_INTERVAL          RETENTION             TOPNSQL

860524039     +00 01:00:00.000000    +07 00:00:00.000000   DEFAULT

以上表示1小时产生一个SNAPSHOT,保留7天,用户要根据自己的需要设定保存策略。

.调整AWR配置

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

1.调整AWR产生snapshot的频率和保留策略

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

SQL>exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

2.关闭AWR

interval设为0则关闭自动捕捉快照

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

3.手工创建一个快照

SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

4. 查看快照

SQL> select * from sys.wrh$_active_session_history;

SQL> select min(snap_id),max(snap_id),dbid from sys.wrh$_active_session_history group by dbid;

5.手工删除指定范围的快照

SQL>exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047);

6.创建baseline

SQL> exec dbms_workload_repository.create_baseline (56,59,'apply_interest_1');

7.删除baseline

SQL>exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ' apply_interest_1', cascade => FALSE);

8.AWR数据导出并迁移到其它数据库以便于以后分析

SQL> exec DBMS_SWRF_INTERNAL.AWR_EXTRACT(dmpfile => 'awr_data.dmp', mpdir => 'DIR_BDUMP', bid => 1003, eid => 1013);

9.迁移AWR数据文件到其他数据库

SQL> exec DBMS_SWRF_INTERNAL.AWR_LOAD(SCHNAME => 'AWR_TEST', dmpfile => 'awr_data.dmp', dmpdir => 'DIR_BDUMP');

AWR数据转移到SYS模式中:

SQL> exec DBMS_SWRF_INTERNAL.MOVE_TO_AWR (SCHNAME => 'TEST');

三、AWR报告日常分析

1.SQL ordered by Elapsed Time

记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间 Elapsed Time = CPU Time + Wait Time)

Elapsed Time(S): SQL语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行次数的总和时间。单位时间为秒。Elapsed Time = CPU Time + Wait Time

CPU Time(s): SQL语句执行时CPU占用时间总时长,此时间会小于等于Elapsed Time时间。单位时间为秒。

Executions: SQL语句在监控范围内的执行次数总计。

Elap per Exec(s): 执行一次SQL的平均时间。单位时间为秒。

% Total DB Time: SQLElapsed Time时间占数据库总时间的百分比。

SQL ID: SQL语句的ID编号,点击之后就能导航到下边的SQL详细列表中,点击IE的返回可以回到当前SQL ID的地方。

SQL Module: 显示该SQL是用什么方式连接到数据库执行的,如果是用SQL*Plus或者PL/SQL链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql该位置为空。

SQL Text: 简单的sql提示,详细的需要点击SQL ID

2.SQL ordered by CPU Time

记录了执行占CPU时间总和时间最长的TOP SQL(请注意是监控范围内该SQL的执行占CPU时间总和,而不是单次SQL执行时间)

3.SQL ordered by Gets

记录了执行占总buffer gets(逻辑IO)TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets)

4.SQL ordered by Reads

记录了执行占总磁盘物理读(物理IO)TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读)

5.SQL ordered by Executions

记录了按照SQL的执行次数排序的TOP SQL。该排序可以看出监控范围内的SQL执行次数。

6.SQL ordered by Parse Calls

记录了SQL的软解析次数的TOP SQL。说到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oraclesql的处理过程。

7.SQL ordered by Sharable Memory

记录了SQL占用library cache的大小的TOP SQLSharable Mem (b):占用library cache的大小,单位是byte

8.SQL ordered by Version Count

记录了SQL的打开子游标的TOP SQL

9.SQL ordered by Cluster Wait Time

记录了集群的等待时间的TOP SQL

四、生产AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql

输入 report_type 的值: 默认为html类型>

输入 num_days 的值: 1

输入 begin_snap 的值: 1181

输入 end_snap 的值: 1182

输入 report_name 的值: 采用默认文件名>

Report written to awrrpt_1_1181_1182.html

SQL> exit

从当前目录下载awrrpt_1_1181_1182.html并打开查看。

五、关闭AWR

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/751371/viewspace-723399/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-18

  • 博文量
    256
  • 访问量
    1199381