微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

awr报告每天自动生成脚本是什么

本篇内容主要讲解“awr报告每天自动生成脚本是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“awr报告每天自动生成脚本是什么”吧!

后面又根据自己业务需求,设置了下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=$(echo `sqlplus -S / as sysdba <<EOF

set heading off trimspool on Feedback off pagesize 0

SELECT trim(max(SNAP_ID))-3 FROM DBA_HIST_SNAPSHOT;

EOF`)

#定义变量----生成的awr报告的开始snap ID  ,即:begin_snap

MIN_SNAP_ID=`expr $MAX_SNAP_ID - 24` 

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

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

#生成awr报告

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

改良版

oracle用户

crontab -e

00 8 * * * /home/oracle/auto_awr.sh

mkdir /home/oracle/awr_log/

vi /home/oracle/auto_awr.sh

#!/bin/bash                                              

#每天早上8点执行,取昨天0点到今天0点的awr报告

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

. /home/oracle/.bash_profile

export ORACLE_SID=这里填写数据库的sid

#定义变量----生成文件的时间设置为前一天

shijian=$(date --date='1 days ago' +%Y%m%d)

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

AWR_FORMAT=html

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

NUM_DAYS=3

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

MAX_SNAP_ID=$(echo `sqlplus -S / as sysdba <<EOF

set heading off trimspool on Feedback off pagesize 0

SELECT trim(max(SNAP_ID))-8 FROM DBA_HIST_SNAPSHOT;

EOF`)

#定义变量----生成的awr报告的开始snap ID  ,即:begin_snap

MIN_SNAP_ID=`expr $MAX_SNAP_ID - 24` 

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

AWR_LOG=/home/oracle/awr_log/AWR_shahand_ ${shijian}_00_24_${ORACLE_SID}.html

#生成awr报告

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

#每天早上8点执行,取昨天9点到昨天17点的awr报告

#最大值减去15就是昨天的17点

MAX_SNAP_ID=$(echo `sqlplus -S / as sysdba <<EOF

set heading off trimspool on Feedback off pagesize 0

SELECT trim(max(SNAP_ID))-15 FROM DBA_HIST_SNAPSHOT;

EOF`)

#最小值=最大值减去8就是9点了,这里expr里面的计算两个值之间与减号一定要有空格,否则报错

MIN_SNAP_ID=`expr $MAX_SNAP_ID - 8`

#设置awr报告生成路径及文件

AWR_LOG=/home/oracle/awr_log/AWR_shahand_${shijian}_09_17_${ORACLE_SID}.html

#生成awr报告的命令

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)

到此,相信大家对“awr报告每天自动生成脚本是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程之家网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐