批量生成AWR报告脚本

--####################################################

--create by shitaipeng

--version 1.0

--titie: Get AWR reports

--####################################################

set echo off

set feedback off

set heading off

set pagesize 0

set termout off

set trimout on

set trimspool on

 

set serveroutput on size 1000000

declare

  v_awr_command    varchar2(100) := '@?/rdbms/admin/awrrpt.sql';

  v_report_type    varchar2(10)  := 'HTML';

  v_db_name        varchar2(32)  := '&db_name';

  v_days           number        := 10;

  v_inst_id        number        := &inst_id;

  v_awr_begin_time date          := to_date('&BeginDate', 'YYYY-MM-DD HH24:MI:SS');

  v_awr_end_time   date          := to_date('&EndDate', 'YYYY-MM-DD HH24:MI:SS');

  v_br             varchar2(10)  := chr(10) ;

 

  v_begin_snap_id  dba_hist_snapshot.snap_id%type;

  v_end_snap_id    dba_hist_snapshot.snap_id%type;

  v_begin_time     dba_hist_snapshot.begin_interval_time%type;

  v_end_time       dba_hist_snapshot.begin_interval_time%type;

  v_report_name    varchar2(256);

begin

  for v_snap_list in (select SNAP_ID, BEGIN_INTERVAL_TIME

                        from dba_hist_snapshot b

                       where Instance_number = v_inst_id

                         and BEGIN_INTERVAL_TIME between v_awr_begin_time

                                                     and v_awr_end_time

                       order by 1)

  loop

    --设置snapID

    v_begin_snap_id := v_end_snap_id;

    v_end_snap_id   := v_snap_list.SNAP_ID;

   

    --设置报表时间

    v_begin_time    := v_end_time;

    v_end_time      := v_snap_list.BEGIN_INTERVAL_TIME;

 

    --生成AWR报表名称

    v_report_name   := 'AWR_' || v_db_name || to_char(v_inst_id) || '_'

                    || to_char(v_begin_time, 'YYYYMMDDHH24MI_')

                    || to_char(v_end_time,   'YYYYMMDDHH24MI')

                    || '.html';

                   

    --如果v_begin_snap_id 和 v_end_snap_id 都不为空时才执行

    if (v_begin_snap_id is not null) and (v_end_snap_id is not null) then

      dbms_output.put_line(v_awr_command);

      dbms_output.put_line(v_report_type);

      dbms_output.put_line(to_char(v_days)); 

      dbms_output.put_line(v_begin_snap_id);

      dbms_output.put_line(v_end_snap_id);

      dbms_output.put_line(v_report_name);

      dbms_output.put_line(v_br);

    end if;

 

  end loop;  

end;

/


执行完毕以后,复制输出结果贴到SQLPLUS中批量执行即可

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

转载于:http://blog.itpub.net/469356/viewspace-758911/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值