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
Oracle AWR报告自动生成并ftp脚本的更多相关文章
- Oracle AWR报告的生成
生成AWR报告需要dbms_workload_repository包的权限. 一.以oracle用户登录到数据库服务器 二.进入SQLPLUS 三.执行脚本 @?/rdbms/admin/awrrpt ...
- Oracle Awr报告_生成
AWR的概念 Oracle数据库是一个使用量很多的数据库,关于Oracle数据库的性能.Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Re ...
- (原创)如何在性能测试中自动生成并获取Oracle AWR报告
版权声明:本文为原创文章,转载请先联系并标明出处 由于日常使用最多的数据库为Oracle,因此,最近又打起了Oracle的AWR报告的主意. 过去我们执行测试,都是执行开始和结束分别手动建立一个快照, ...
- [转]oracle awr报告生成和分析
转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...
- Oracle AWR报告生成和性能分析
目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...
- ORACLE AWR报告生成步骤
ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\ ...
- Oracle AWR报告指标全解析-11011552
1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...
- 快速熟悉 Oracle AWR 报告解读
目录 AWR报告简介 AWR报告结构 基本信息 Report Summary Main Report RAC statistics Wait Event Statistics 参考资料 本文面向没有太 ...
- Oracle AWR 报告详解
转自:http://blog.csdn.net/laoshangxyc/article/details/8615187 持续更新中... Oracle awr报告详解 DB Name DB Id In ...
随机推荐
- HTML/CSS中常遇到的bug 一些注意事项总结
1.IE6下横向双倍margin bug (触发条件:块属性标签:float:横向margin设置:IE6下.解决办法:css中加入display:inline.) 2.css中公用属性首先声明:如对 ...
- Unity3d游戏中添加移动MM支付SDK问题处理
原地址:http://www.tuicool.com/articles/I73QFb 由于移动mm的SDK将部分资源文件放在jar包中,导致Unity无法识别,提示failed to find res ...
- JAVASCRIPT的一些知识点梳理
春节闲点,可以安心的梳理一下以前不是很清楚的东东.. 看的是以下几个URL: http://web.jobbole.com/82520/ http://blog.csdn.net/luoweifu/a ...
- Hadoop格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
异常描述: 在对HDFS格式化,执行hadoop namenode -format命令时,出现未知的主机名的问题,异常信息如下所示: [shirdrn@localhost bin]$ hadoop n ...
- lintcode 中等题:kth-largest-element 第k大元素
题目 第k大元素 在数组中找到第k大的元素 样例 给出数组[9,3,2,4,8],第三大的元素是4 给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推 注 ...
- [mock]7月25日
1. 将一个数组分成左右两部分,使得右边的某个连续子段和减去左边的某个连续字段和最小[7,8,9,|3,5,-1] sum right - sum left minimal 想到左右分一刀,O(n), ...
- 【多媒体封装格式详解】---MKV
http://blog.csdn.net/tx3344/article/details/8162656# http://blog.csdn.net/tx3344/article/details/817 ...
- C#四种文件流的区别(转)
1.FileStream类的读写操作 FileStream类可以对任意类型的文件进行读取操作,而且我们也可以按照需要指定每一次读取字节长度,以此减少内存的消耗,提高读取效率. 代码实例: //创建文件 ...
- OSSEC - Agent端查看命令
命令:/opt/ossec/bin/agent_control -h注释:/opt/为安装目录 [root@redhat rules]# /opt/ossec/bin/agent_control -h ...
- NET Remoting 示例
.NET Remoting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施.调用对象被称为客户端,而被调用对象则被称为服务器或者服务器对象.简而言之,它就是.NET平台 ...