产生快照以后,就可以根据快照自动产生报表了,下面是自动产生报表的脚本,并将报表发送到了指定邮箱:
$more spreport.sh
#!/bin/ksh
# creator: piner
# function: get statpack report
date
#设置环境变量
export ORACLE_SID=test
export ORACLE_HOME=/u01/oracle/product/9.2
export NLS_LANG=american_america.zhs16gbk
#设置运行是变量
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LOGFILE=/home/oracle/logs/spreport.txt #日志文件
REPFILE=/home/oracle/worksh/spreport.lst #报表文件
#获得最后2个快照点
$SQLPLUS -S perfstat/perfstat <set echo off
set feedback off
set heading off
set pagesize 0
set linesize 1000
set trimspool on
spool $LOGFILE
select snap_id from
(select snap_id from stats\$snapshot where instance_number=1
order by snap_time desc) where rownum<3;
spool off;
set echo on
set feedback on
set heading on
exit
EOF
line1=`tail -1 $LOGFILE`
line2=`head -l $LOGFILE`
echo "line1 is"$line1
echo "line2 is"$line2
#产生报表
rm $REPFILE
$SQLPLUS -S perfstat/perfstat <define begin_snap=$line1
define end_snap=$line2
define report_name=$REPFILE
@?/rdbms/admin/spreport.sql
exit
EOF
#发送邮件
mail -s `date +%Y%m%d`'-'`hostname`spreport test@mail.com < $REPFILE
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11411056/viewspace-734299/
,如需转载,请注明出处,否则将追究法律责任。