批量生成awr报告

输入时间,格式为yyyymmdd hh24:mi

set echo off;
set veri off;
set feedback off;
set serverout on;
set heading off;
set linesize 1500;
SET AUTOPRINT OFF;
variable dbid number;
variable inst_num number;
variable btim        varchar2(30);
variable etim        varchar2(30);
variable inst_name    varchar2(30);
variable path          varchar2(30);
prompt please enter begin_time,end_time and path(default current path) where you want to save reports;
prompt 
prompt begin_time and end_time format : yyyymmdd hh24:mi
prompt
prompt path format for unix/linux like :  /tmp/awr_report/ 
prompt
prompt path format for win like:  e:\awr_report\
prompt
 
begin
  :btim := '&begin_time';
  :etim := '&end_time';
  :path := '&path';
end;
/
prompt progressing...
set termout off
spool batch_awr_stat.sql
declare
  v_sql varchar2(1000);
begin
  select dbid into :dbid from v$database;
  select instance_number, instance_name
    into :inst_num, :inst_name
    from v$instance;
  for v_info in (select distinct snap_id, btim, etim
                   from (select snap_id,
                                to_char(end_interval_time, 'yyyymmddhh24mi') btim,
                                to_char(lead(end_interval_time, 1)
                                        over(order by snap_id),
                                        'yyyymmddhh24mi') etim,
                                lead(end_interval_time, 1over(order by snap_id) lt
                           from dba_hist_snapshot
                          where to_char(end_interval_time, 'yyyymmdd hh24:mi'between
                               :btim and :etim
                            and instance_number = :inst_num)
                  where to_char(lt, 'yyyymmdd hh24:mi'between
                        :btim and :etim) loop
    select 'spool ' || :path || :inst_name || '_' || v_info.btim || '_' ||
           v_info.etim || '.html;' || chr(10) ||
           'select output from table(dbms_workload_repository.awr_report_html(' ||
           :dbid || ',' || :inst_num || ',' || v_info.snap_id || ',' ||
           (v_info.snap_id + 1) || ',' || '0));' || chr(10) || 'spool off;'
      into v_sql
      from dual;
    dbms_output.put_line(v_sql);
  end loop;
end;
/
spool off
@batch_awr_stat.sql
set termout on
prompt
prompt script executed completely!
prompt
set veri on;
set feedback on;
set serverout off;
set heading on;
SET AUTOPRINT on;
set echo on;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值