1 手工采样数据
exec dbms_workload_repository.create_snapshot;
常用脚本 @?/rdbms/admin/awrrpt --生成AWR报告 @?/rdbms/admin/awrddrpt --AWR比对报告(2个时间区间对比) @?/rdbms/admin/awrsqrpt --生成SQL报告 @?/rdbms/admin/awrsqrpi 生成其他实例SQL报告 --对比其他地方迁移过来的AWR
创建一个AWR基线
exec dbms_workload_repository.create_baseline(start_snap_ id,end_snap_id ,baseline_name);
2 查看当前的AWR保存策略
select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- --------------------------------------- --------------------------------------- ---------- 1564637639 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT 注:以上结果表示,每小时产生一个SNAPSHOT,保留7天
3 调整AWR相关参数
sqlplus / as sysdba SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql 输入 report_type 的值:html (注:确定报告的格式) 输入 num_days 的值:7 (注:选择快照的天数) 输入 begin_snap 的值:425 (注:起始快照) 输入 end_snap 的值:427 (注:结束快照) 输入 report_name 的值:/home/oracle/scr/awr_report/awr-2020-01-18.html 注:sqlplus sys/sys@192.168.1.61/PEDBDB as sysdba 可以远程生成AWR报告 --其中 PEDBDB为service_names
4.2 windows系统
1.运行cmd,然后进入到 oracle的安装目录 例: E:\app\Administrator\product\11.2.0\dbhome_1\ 2.再进入到下面的目录 RDBMS\ADMIN,确ADMIN下面有 awrrpt.sql这个文件 3.输入 sqlplus ,然后以管理员身份登录。 4.输入命名:@awrrpt 5.输入 report_type 的值:html --可以选择text或html类型 6.输入 num_days 的值:7 --选择快照的天数 输入1,则表示要生成今天0点开始到现在之内的某个时间段的报告,以此类推,缺省记录最近7天 7.输入 begin_snap 的值:425 --起始快照 8.输入 end_snap 的值:427 --结束快照 9.输入 report_name 的值 --D:\awr.html(指定位置) 注:生成的oracle报告的位置若不指定默认位置在: $ORACLE_HOME\RDBMS\ADMIN 下
5 生成ASH报告的步骤
ASH (Active SessionHistory) ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。 不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成,v$active_session_history视图提供了在实例级别抽取会话活动信息 一般在线上实时诊断数据库性能问题,特别是负载高,CPU 100%,这个时候用ASH实时出日志报告,就能很大程度上准确定位问题所在。 sqlplus / as sysdba SQL> @?/rdbms/admin/ashrpt.sql --?代表环境变量$ORACLE_HOME 输入 report_type 的值:html --确定报告的格式 Enter value for begin_time --输入ASH 开始的时间,时间格式上面的示例有说明 Enter value for duration: --输入ASH 结束时间,默认是SYSDATE - begin_time,一般输入的分析统计的总时间,一般默认是秒, 比如这里7200就是2个小时,拿出2个小时的ash分析日志来。 Enter value for report_name:/home/oracle/scr/ash_report/ash-2020-12-13.html --指定位置