Oracle AWR报告自动生成并ftp脚本

脚本主要由以下几个部分组成:

awr.sql 用来在sqlplus 中执行的脚本,该脚本从网上直接找的。

awr.sh 用来调用sqlplus来生成awr报告。

ftp.sh 用来打包压缩每天生成的awr报告(压缩率大于50倍),并进行ftp传输,清理过期的报告,对于linux和solaris略有不同。

crontab 用来执行定时任务,根据需求进行调整。

下面为具体的脚本内容,可以根据需要进行调整。

awr.sql :

 1 set echo off;
 2 set veri off;
 3 set feedback off;
 4 set termout on;
 5 set heading off;
 6
 7 variable rpt_options number;
 8
 9 define NO_OPTIONS = 0;
10 -- define ENABLE_ADDM = 8;
11
12 rem according to your needs, the value can be ‘text‘ or ‘html‘
13 define report_type=‘html‘;
14 begin
15 :rpt_options := &NO_OPTIONS;
16 end;
17 /
18
19 variable dbid number;
20 variable inst_num number;
21 variable bid number;
22 variable eid number;
23 begin
24 select max(snap_id)-1 into :bid from dba_hist_snapshot;
25 select max(snap_id) into :eid from dba_hist_snapshot;
26 select dbid into :dbid from v$database;
27 select instance_number into :inst_num from v$instance;
28 end;
29 /
30
31 column ext new_value ext noprint
32 column fn_name new_value fn_name noprint;
33 column lnsz new_value lnsz noprint;
34
35 select ‘txt‘ ext from dual where lower(‘&report_type‘) = ‘text‘;
36 select ‘html‘ ext from dual where lower(‘&report_type‘) = ‘html‘;
37 select ‘awr_report_text‘ fn_name from dual where lower(‘&report_type‘) = ‘text‘;
38 select ‘awr_report_html‘ fn_name from dual where lower(‘&report_type‘) = ‘html‘;
39 select ‘80‘ lnsz from dual where lower(‘&report_type‘) = ‘text‘;
40 select ‘1500‘ lnsz from dual where lower(‘&report_type‘) = ‘html‘;
41
42 set linesize &lnsz;
43
44 column report_name new_value report_name noprint;
45
46 select ‘sp_‘||:bid||‘_‘||:eid||‘.‘||‘&ext‘ report_name from dual;
47 set termout off;
48 spool &report_name;
49
50 select output from table(dbms_workload_repository.&fn_name(:dbid, :inst_num,:bid, :eid,:rpt_options ));
51 spool off;
52 set termout on;
53 clear columns sql;
54 ttitle off;
55 btitle off;
56 repfooter off;
57 undefine report_name
58 undefine report_type
59 undefine fn_name
60 undefine lnsz
61 undefine NO_OPTIONS

awr.sh:

 1 mydate=‘date +%y%m%d‘
 2 ORACLE_SID=orcl; export ORACLE_SID
 3 ORACLE_BASE=/opt/app/ora11g; export ORACLE_BASE
 4 ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
 5 cd /opt/awr
 6 $ORACLE_HOME/bin/sqlplus /nolog<<!
 7 connect / as sysdba;
 8 @awr.sql
 9 exit
10 ! 

ftp.sh(RHEL6版本):

 1 #!/usr/bin/bash
 2 mydate=`date +%y%m%d`
 3 mydir=/opt/awr
 4 cd ${mydir}
 5 find *.html -daystart -mtime -1 | xargs tar -zcvf awr_${mydate}.tar.gz
 6 echo "======================FTP start========================="
 7 ftp -n<<!
 8 open 11.11.11.11 21
 9 user username passwd
10 binary
11 lcd /opt/awr
12 cd /ftp/orcl
13 put awr_${mydate}.tar.gz
14 close
15 bye
16 !
17 echo "=======================FTP end============================"
18 echo "=================delete the tar file====================="
19 rm awr_${mydate}.tar.gz
20 echo "=================delete the tar file end====================="
21 echo "=================delete the old file ====================="
22 find ${mydir} -name "*.html" -type f -mtime +3 -exec rm {} \;
23 echo "=================delete the old file end====================="

ftp.sh (Solaris 10版本):

 1 #!/usr/bin/sh
 2 mydate=`date +%y%m%d`
 3 mytoday=`date +%m%d`
 4 mydir=/opt/awr
 5 cd ${mydir}
 6 touch ${mytoday}0000 TODAY
 7 find *.html -newer TODAY | xargs tar -cvf awr_${mydate}.tar
 8 gzip -c  awr_${mydate}.tar > awr_${mydate}.tar.gz
 9 echo "======================FTP start========================="
10 ftp -n<<!
11 open 11.11.11.11 21
12 user username passwd
13 binary
14 lcd /opt/awr
15 cd /ftp/orcl
16 put awr_${mydate}.tar.gz
17 close
18 bye
19 !
20 echo "=======================FTP end============================"
21 echo "=================delete the tar and temp file====================="
22 rm awr_${mydate}.tar
23 rm TODAY
24 rm awr_${mydate}.tar.gz
25 echo "=================delete the tar and temp file end====================="
26 echo "=================delete the old file ====================="
27 find ${mydir} -name "*.html" -type f -mtime +0 -exec rm -rf {} \;
28 echo "=================delete the old file end====================="

crontab:

0 0-23 * * * sh /opt/awr/awr.sh
5 23 * * * sh /opt/awr/ftp.sh
时间: 2024-10-08 01:48:58

Oracle AWR报告自动生成并ftp脚本的相关文章

python实现自动生成oracle awr报告

目前在规划.开发性能自动化执行框架,其中有个环节很有意思,就是如何通过框架自动获得场景执行期间的oracle awr报告.虽然Oracle客户端提供的awrrpt.sql脚本可以提供交互方式生成awr报告,但并不能直接使用在自动化框架中,至少需要做一些改造,将交互的模式变成可以静默执行. 一 问题分析 经过对问题的分析,有两种基本的解决思路: A.  在oracle服务器上部署shell脚本,使用shell命令启动oracle的sqlplus执行autoawr.sql,其中autoawr.sql

[转]oracle awr报告生成和分析

转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数据库awr分析数据库sql执行性能的分析报告.下面将初步讲解一下: 1.先登陆数据库,生成awr报告. linux:~ # su - oracle[email protected]:~> sqlplus '/as sysdba' SQL*Plus: Release 11.1.0.6.0 - Prod

ORACLE AWR报告生成步骤

ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\awrrpt.sql; -- 具体地址,需要查询得到 --然后在弹出的对话框中输入选择的导出格式html或者txt,一般用html,生成的报告用浏览器查看比较方便. 2.在弹出的对话框中输入数字选择制定选择快照的数量 3.在接下来弹出的对话框中分别选择最小和最大snap_id

(转载)Oracle AWR报告指标全解析

Oracle AWR报告指标全解析 2014-10-16 14:48:04 分类: Oracle [性能调优]Oracle AWR报告指标全解析 2013/08/31 BY MACLEAN LIU 26条评论 [性能调优]Oracle AWR报告指标全解析 开Oracle调优鹰眼,深入理解AWR性能报告:http://www.askmaclean.com/archives/awr-hawk-eyes-training.html 开Oracle调优鹰眼,深入理解AWR性能报告 第二讲: http:

oracle AWR报告

AWR( Automatic Workload Repository )报告是对oracle的性能评定以及发现问题SQL语句的重要手段. AWR报告的原理是基于oracle数据库的定时镜像功能.默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中.生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况.AWR镜像保存在数据库中的时间为一个月左右. 也可以手工生成一个快照: SQL>dbms_wo

AWR报告的生成和简单分析方法

生成AWR报告方法: 第一步:数据库压力测试卡开始时:生成第一个快照: Sql>exec dbms_workload_repository.create_snapshot(); 第二步:数据库压力测试结束时:生成第二个快照 Sql>exec dbms_workload_repository.create_snapshot(); 第三步:生成AWR报告 SQL> @/oracle/product/10.2.0.5/rdbms/admin/awrrpt.sql (1)       选择报告文

报告自动生成

对于诸多行业客户,在平时工作实践中,会产生大量的财务数据.交易数据,以及基于这些数据的计算过程和结果.如何将此类数据的采集.编辑.加工.汇总.整理.存储.产生分析报告,得到有效信息,工作量极大,人工成本昂贵,并且繁琐,存在风险.如果客户的工作报告生成系统为人工制作,操作风险会比较高,数据需人工采集编辑,未来产品数量和数据爆发式增长,现有制作报告人力会面临制作时效较长.缺失系统管理.无法有效完成报告查询定位等风险,间接影响客户服务体验.基于此,构建一个行业客户工作报告生成配套管理系统,从报告的出生

金融行业工作报告自动生成系统

对于诸多行业客户,在平时工作实践中,会产生大量的财务数据.交易数据,以及基于这些数据的计算过程和结果.如何将此类数据的采集.编辑.加工.汇总.整理.存储.产生分析报告,得到有效信息,工作量极大,人工成本昂贵,并且繁琐,存在风险.如果客户的工作报告生成系统为人工制作,操作风险会比较高,数据需人工采集编辑,未来产品数量和数据爆发式增长,现有制作报告人力会面临制作时效较长.缺失系统管理.无法有效完成报告查询定位等风险,间接影响客户服务体验.基于此,构建一个行业客户工作报告生成配套管理系统,从报告的出生

税务报告自动生成系统

香港某部门使用我公司产品,利用XML作为数据统一形式实现税单计算的案例. 问题描述:税务部门为市民计算税单时,不仅仅收集公民的收入状况,还需要收集市民的抚养人口多少.是否买过房地产.是否买过保险等等许多信息,并包括:社会保险.医疗.以及水.电.煤气消费等全部信息.问题是市民的不同信息是在不同部门的不同信息系统中以不同的形式进行保存的,如:人口信息是在户籍管理系统中保存,医疗等在民政部门保存,这样如何将这些信息融合在一起完整的提供给查询的市民呢?借助于本系统,这些信息无论是何种格式,都将自动地被转