shell脚本oracle循环,使用SHELL脚本批量生成AWR报告

一、查询需要生成的AWR报告的开始快照ID和结束快照ID,比如我们要查询7月12日9-18点的AWR快照ID

SELECT distinct trim(SNAP_ID)

FROM DBA_HIST_SNAPSHOT

where to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24')='2016-07-12 09'

;

TRIM(SNAP_ID)

--------------------------------------------------------------------------------

43097

SELECT distinct trim(SNAP_ID)

FROM DBA_HIST_SNAPSHOT

where to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24')='2016-07-12 18'

;

TRIM(SNAP_ID)

--------------------------------------------------------------------------------

43106

二、根据查询到的AWR快照ID开发SHELL脚本

# vi   awr3.sh

#set -x

V_DIR=/home/oracle/olm/20160713/awr

V_SNAP_ID=43097

###########Print AWR#############

while [ $V_SNAP_ID -lt 43106 ]

do

AWR_FORMAT=html

NUM_DAYS=1

MAX_SNAP_ID=`sqlplus -S / as sysdba << EOF

set heading off trimspool on feedback off

SELECT trim(max(SNAP_ID)) FROM DBA_HIST_SNAPSHOT where SNAP_ID=$V_SNAP_ID;

EOF`

MIN_SNAP_ID=`expr $MAX_SNAP_ID - 1`

AWR_LOG=$V_DIR/AWR_$ORACLE_SID_`date '+%Y%m%d_%H%M'`_$V_SNAP_ID.html

echo -e "$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID\n$MAX_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql) > /dev/null

V_SNAP_ID=`expr $V_SNAP_ID + 1`

done

#set +x

赋予脚本执行权限

chmod 755 awr3.sh

执行脚本就会在 /home/oracle/olm/20160713/awr 目录下按每小时一份生成9到18点的AWR报告。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21582653/viewspace-2121992/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值