shell脚本,awr_report.sh 这是每1小时生成一次awr报告的脚本,并删除7天前的awr(根据实际情况修改)
先创建一个awr存放路径
mkdir -p /home/oracle/$ORACLE_SID
cat /home/oracle/script/awr_report.sh
#!/bin/sh
ORACLE_SID=$1
export ORACLE_SID
source ~/.bash_profile
WORKPATH=/home/oracle/$1
AWR_FORMAT=html
NUM_DAYS=1
MAX_SNAP_ID=sqlplus -S / as sysdba << EOF<br />set heading off trimspool on feedback off<br />SELECT trim(max(SNAP_ID)) FROM DBA_HIST_SNAPSHOT;<br />EOF
export MAX_SNAP_ID
MIN_SNAP_ID=expr $MAX_SNAP_ID - 1
export MIN_SNAP_ID
echo $MIN_SNAP_ID
datetime=date +%Y%m%d%H
export datetime
AWRLOG=$WORKPATH/AWR$1_${datetime}.html
export AWR_LOG
echo $AWR_LOG
echo -e “$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID$MAX_SNAP_ID\n$AWR_LOG\n”|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql) > /dev/null
find /home/oracle/$1/ -name ‘*.html’ -mtime +7 -exec rm -f {} \;
crontab 里面添加执行时间
10 /1 /home/oracle/script/awr_report.sh SID
