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

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

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

  1. Oracle AWR报告的生成

    生成AWR报告需要dbms_workload_repository包的权限. 一.以oracle用户登录到数据库服务器 二.进入SQLPLUS 三.执行脚本 @?/rdbms/admin/awrrpt ...

  2. Oracle Awr报告_生成

    AWR的概念 Oracle数据库是一个使用量很多的数据库,关于Oracle数据库的性能.Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Re ...

  3. (原创)如何在性能测试中自动生成并获取Oracle AWR报告

    版权声明:本文为原创文章,转载请先联系并标明出处 由于日常使用最多的数据库为Oracle,因此,最近又打起了Oracle的AWR报告的主意. 过去我们执行测试,都是执行开始和结束分别手动建立一个快照, ...

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

    转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...

  5. Oracle AWR报告生成和性能分析

    目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...

  6. ORACLE AWR报告生成步骤

    ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\ ...

  7. Oracle AWR报告指标全解析-11011552

    1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...

  8. 快速熟悉 Oracle AWR 报告解读

    目录 AWR报告简介 AWR报告结构 基本信息 Report Summary Main Report RAC statistics Wait Event Statistics 参考资料 本文面向没有太 ...

  9. Oracle AWR 报告详解

    转自:http://blog.csdn.net/laoshangxyc/article/details/8615187 持续更新中... Oracle awr报告详解 DB Name DB Id In ...

随机推荐

  1. 在线最优化求解(Online Optimization)之二:截断梯度法(TG)

    在线最优化求解(Online Optimization)之二:截断梯度法(TG) 在预备篇中我们做了一些热身,并且介绍了L1正则化在Online模式下也不能产生较好的稀疏性,而稀疏性对于高维特征向量以 ...

  2. tomcat 解析(二)-消息处理过程

    接下来我们应该去了解一下 tomcat 是如何处理jsp和servlet请求的. 1.  我们以一个具体的例子,来跟踪TOMCAT, 看看它是如何把Request一层一层地递交给下一个容器, 并最后交 ...

  3. SSL 握手过程

    SSL协议的握手过程 SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术.SSL 的握手协议非常有效的让客户和服务器 ...

  4. Spring 注入static变量

    一般我们我想注入一个static的变量,如下: @Autowired    private static String str; 不过,这样最终结果为null. 1.使用配置文件的方式注入 priva ...

  5. Sina App Engine(SAE)入门教程(2)-Mysql使用

    如果你还没有SAE的账号,请在http://sae.sina.com.cn 注册新用户.具体的注册流程请参见:Sina App Engine(SAE)入门教程(1)在常规的环境下,我们可以通过http ...

  6. Windows基于Apache的svn服务器配置

    参照 http://bbs.iusesvn.com/thread-158-1-1.html文章,经过svn的洗刷,终于把它配置成功,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的 ...

  7. 开源入侵检测系统OSSEC搭建之三:Web界面安装

    注意:以下操作需在OSSEC服务端进行设置 一.下载analogi,存放于/var/www/html/下并赋予权限 [root@localhost ~]# wget https://github.co ...

  8. mac root用户初始密码设置

    具体方法如下: 1)sudo su切换到root,输入的用户密码是当前用户的密码: 2)切换到root后,执行passwd root,设置root用户密码即可.

  9. Netstat 命令

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

  10. 4、JPA table主键生成策略(在JPA中table策略是首推!!!)

    用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...