存储过程批量生成awr脚本

发布时间:2020-08-15 21:34:29 作者:mahanso
来源:ITPUB博客 阅读:159
DECLARE  
  
  l_snap_start       NUMBER := 40078;  
  l_snap_end         NUMBER := 40081;  
  l_dir              VARCHAR2(50) := 'AWRTEST';  
    
  l_last_snap        NUMBER := NULL;  
  l_dbid             NUMBER := 2778659381;  
  l_file             UTL_FILE.file_type;  
  l_file_name        VARCHAR(50);  
  cursor cur_inum is  SELECT instance_number FROM dba_hist_snapshot WHERE dbid = l_dbid GROUP BY instance_number ORDER BY instance_number;  
  
  
BEGIN  
  
  for l_instance_number in cur_inum loop   
    l_last_snap := NULL;  
    FOR cur_snap IN (SELECT snap_id  
                   FROM   dba_hist_snapshot  
                   WHERE  instance_number = l_instance_number.instance_number  
                   AND    snap_id BETWEEN l_snap_start AND l_snap_end  
                   ORDER BY snap_id)  
  LOOP  
    IF l_last_snap IS NOT NULL THEN  
      l_file := UTL_FILE.fopen(l_dir, 'awr_' ||l_instance_number.instance_number||'_'|| l_last_snap || '_' || cur_snap.snap_id || '.html', 'w', 32767);  --40162
        
      FOR cur_rep IN (SELECT output  
                      FROM   TABLE(DBMS_WORKLOAD_REPOSITORY.awr_report_html(l_dbid, l_instance_number.instance_number, l_last_snap, cur_snap.snap_id)))  
      LOOP  
        UTL_FILE.put_line(l_file, cur_rep.output);  
      END LOOP;  
      UTL_FILE.fclose(l_file);  
    END IF;  
    l_last_snap := cur_snap.snap_id;  --40161
  END LOOP;  
  end loop;  
    
EXCEPTION  
  WHEN OTHERS THEN  
    IF UTL_FILE.is_open(l_file) THEN  
      UTL_FILE.fclose(l_file);  
    END IF;  
    RAISE;   
END;  
推荐阅读:
  1. 脚本批量生成ansible host inventory 主机清单
  2. 手动生成AWR报告

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

awr 存储 批量

上一篇:Linux终端记录神器

下一篇:RDD Transformation和Action源码剖析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》