博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awr报告每天自动生成脚本
阅读量:2432 次
发布时间:2019-05-10

本文共 2304 字,大约阅读时间需要 7 分钟。

原版参考了别人写的脚本,不过有一些错漏的地方,无法直接执行的,就自己做了修改

后面又根据自己业务需求,设置了下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

#定义变量----生成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_`date '+%Y%m%d_%H%M'`_00_24.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_2=$(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_`date '+%Y%m%d_%H%M'`_09_17.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)

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

转载于:http://blog.itpub.net/28371090/viewspace-2654421/

你可能感兴趣的文章
Spring自动装配
查看>>
Hibernate入门与实例
查看>>
Jython入门学习
查看>>
Hiberate基础用法实例
查看>>
Maven编译时指定JDK版本
查看>>
Hibernate单向关联N-1
查看>>
Hibernate单向关联1-1
查看>>
jQuery自定义动画
查看>>
Spring-data-redis在shiro中的实例
查看>>
GUN C中__attribute__作用
查看>>
3、系统调用之SYSCALL_DEFINE分析
查看>>
linux的signal_pending及signal
查看>>
OBJDUMP用法
查看>>
c/cplusplus通用makefile
查看>>
JavaScript-密码强度
查看>>
【SSH】1366-InCorrect string value:'\xE9\x99\x88\xE6\x96\xB0...'for column 'name' at row 1
查看>>
SpringCloud前身之微服务
查看>>
纵览全局——SSH
查看>>
纵览全局——Mybatis
查看>>
PC端-中文转拼音后续问题
查看>>