您的位置:首页 > 数据库 > Oracle

oracle 自动生成 awr 报告的 简单 shell 脚本

2014-08-19 19:13 387 查看
转自:http://blog.sina.com.cn/s/blog_68236b870100wns1.html

vim ~oracle/auto/awr.auto                          #编辑生成 awr 报告的脚本 文件,取前一天的24小时 awr报告

#!/bin/bash                                              

#加载一下oracle的环境变量文件,不然 sqlplus 命令在crontab 计划任务里不能被执行(或者用 source /home/oracle/.bash_profile)

. /home/oracle/.bash_profile

#定义变量----生成awr报告的文件类型

AWR_FORMAT=html

#定义变量---- 拉取几天内的snap列表               

NUM_DAYS=3

#定义变量----生成的awr报告的结束snap ID  ,即:end_snap  

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

set heading off trimspool on feedback off

SELECT trim(max(SNAP_ID))-3 FROM DBA_HIST_SNAPSHOT;                 #我在crontab里设置每天凌晨3点10分执行,所以要取最大ID 后在减3

EOF`

#定义变量----生成的awr报告的开始snap ID  ,即:begin_snap
MIN_SNAP_ID=`expr $MAX_SNAP_ID - 24` 

#生成的awr报告的文件路径及文件名

AWR_LOG=/tmp/AWR_shahand_`date '+%Y%m%d_%H%M'`.html

#生成awr报告
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

:wq  保存退出

crontab -e

10 3 * * * /home/oracle/awr.auto

:wq
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: