收集 数据库的awr数据,生成报告

 该脚本只是把awr报告的内容,原封不动的 展现出来,做记录

awrreport.sql  脚本内容如下:

 

 *******************************************************

#该脚本请用具有 dba 权限的用户执行,普通用户没有权限访问数据库的基表
set linesize 1200 ;
set pagesize 0;
set long 99999;
set heading off;
--set termout off;
set echo off;
set feedback off;
set timing off;
set serveroutput on;

exec dbms_output.put_line('report_name,for example:hydk');
spool awrrpt_tmp.sql;
 
select
'spool &report_name'||'_awrrpt_'||snap_id||'_'||(snap_id+1)||'.lst'||chr(10)||
'select output '||chr(10)||
'  from table(dbms_workload_repository.awr_report_text('||dbid||',1,'||snap_id||','||(snap_id+1)||'));'||chr(10)||'spool off;'||chr(10)
from dba_hist_snapshot;
whenever sqlerror continue;   --默认情况下,数据库实例重启,那么重启前后的 快照是不能使用的。测试 过程会 中断、退出。添加此处   忽略 报错,继续执行
spool off ;
@awrrpt_tmp.sql;

---- 这里要等一段时间,多敲几下回车以保证上面的语句都执行 ---

host del awrrpt_tmp.sql;
exit;

 

 *******************************************************

 

执行该脚本之后,会在当前目录生成很多   .lst的文件。

 

2. 借用oracle数据库的perl工具,解析该 .lst 文件

  1. perl工具解析数据库报告文件

首先进入perl文件的绝对路径,perl文件是oracle软件包附带的,其绝对路径如下:

 

  1. 然后把数据库的报告文件拷贝到当前目录,使用如下命令解析报告

因为是在当前路径下操作,所以不必指定报告文件

 

 

  1. 解析完成之后,会生成以下三个文件

 

  1. 简单查看文件内容

 

posted @ 2015-12-15 16:11  Oracle-fans  阅读(501)  评论(0编辑  收藏  举报