导出AWR数据
sqlplus "/ as sysdba"
@?/rdbms/admin/awrrpt.sql
==============================
保存路径:
linux:
默认保存在/home/oracle路径下
windows:
C:\Users\Administrator\awrrpt_1_380_394.html
==============================
/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/awrrpt.sql脚本生成awr报告
在SQL环境执行:SQL>
@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/awrrpt.sql
输入报告类型:html或text
输入要生成报告的天数,缺省是7天
列出最近7天的快照
输入开始的快照id,如:3038
输入结束的快照id,如3063
指定生成报告的名称:本次默认是
按Enter键默认
最后生成
默认保存在/home/oracle路径下
===========================================
https://localhost:1158/em/
登陆EM
切换到“性能”
“快照”
选择起始快照
查看报告
选择结束快照
点击确定,生成报告
==============================
1. AWR报告 1.1. AWR的由来 10g之前的oracle用户的连接将产生会话,当前会话记录保存在v$session中;处于等待状态的会话会被复制一份放在v$session_wait中。当该连接 断开后,其原来的连接信息在v$session和v$session_wait中就会被删除;oracle10g及之后保留下了
v$session_wait
中的这些信息,并多了
v$active_session_history(ASH)视图,记录每个活动session在v$session_wait中最近10次的等待事件。 ASH的采样数据是保存在内存中。而分配给ASH的内存空间是有限的,当所分配空间占满后,旧的记录就会被覆盖掉;而且数据库重启后,所有的这些ASH信息都会消失。这样,对于长期检测oracle的性能是不可能的。在Oracle10g中,提供了永久保留ASH信息的方法,这就是AWR(Automatic Workload Repository,自动工作负载库)。 由于全部保存ASH中的信息是非常耗费时间和空间的,AWR采用的策略是:每小时对v$active_session_history进行采样一次,并将信息保存到磁盘中,并且保留7天,7天后旧的记录才会被覆盖。这些采样信息被保存在视图wrh$_active_session_history中。而这个采样频率(1小时)和保留时间(7天)是可以根据实际情况进行调整的,这就给DBA们提供了更加有效的系统监测工具。 1.2. AWR的启用 在默认情况下,Oracle启用数据库统计收集这项功能(即启用AWR)。是否启用AWR由初始化参数STATISTICS_LEVEL控制。通过SHOW PARAMETER命令,可以显示STATISTICS_LEVEL的当前值: SQL> SHOW PARAMETER STATISTICS_LEVEL SQL语句的执行结果是: NAME TYPE VALUE statistics_level string TYPICAL
如果STATISTICS_LEVEL的值为TYPICAL或者 ALL,表示启用AWR;如果STATISTICS_LEVEL的值为BASIC,表示禁用AWR。 初始化参数statistics_level介绍: AWR的行为受到参数STATISTICS_LEVEL的影响。这个参数有三个值: *BASIC:awr统计的计算和衍生值关闭.只收集少量的数据库统计信息. *TYPICAL:默认值.只有部分的统计收集.他们代表需要的典型监控oracle数据库的行为. *ALL : 所有可能的统计都被捕捉. 并且有操作系统的一些信息.这个级别的捕捉应该在很少的情况下,比如你要更多的sql诊断信息的时候才使用. 1.3. 快照(SNAPSHOT) 每隔一小时,内存监控进程(MMON)自动地采集一次统计信息,并把这些信息存放到负载库中,一次采样就是一个快照。为了节省空间,采集的数据在7天后自动清除。快照的频率和保留时间可以由用户修改。 1) 查看快照的频率和保留时间(默认为每1小时采样一次,采样信息保留
时间为7天) select * from dba_hist_wr_control; select DBID, SNAP_INTERVAL, SNAPINT_NUM, RETENTION from wrm$_wr_control; 2) 修改 快照的频率和保留时间(单位用分钟) exec dbms_workload_repository.modify_snapshot_settings(interval=>60, retention=>7*24*60); 3) 手工生成快照 EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 4) 手工删除指定范围的快照 exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 3965, high_snap_id => 3966, dbid => 3437504306); 5) 查看有多少个快照 select count(1) from wrh$_active_session_history; select count(1) from dba_hist_active_sess_history;
通过查询视图DBA_HIST_SNAPSHOT,可以知道系统中产生了哪些快照。 select * from DBA_HIST_SNAPSHOT; 6) 采样数据存放位置 这些采样数据都存储在SYSAUX表空间中,并且以WRM$_* 和 WRH$_*的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。 select table_name from dba_tables where table_name like 'WRM$%'; TABLE_NAME ----------------------- WRM$_WR_CONTROL WRM$_SNAP_ERROR WRM$_SNAPSHOT WRM$_DATABASE_INSTANCE WRM$_BASELINE 当SYSAUX表空间满后,AWR将自动覆盖掉旧的信息,并在警告日志中记录一条相关信息: ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_3533490838_1522 by 128 in tablespace SYSAUX