千家信息网

怎么获取AWR的脚本

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇内容介绍了"怎么获取AWR的脚本"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin/ba
千家信息网最后更新 2024年11月18日怎么获取AWR的脚本

本篇内容介绍了"怎么获取AWR的脚本"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

#!/bin/bash#by raysuen#v02. ~/.bash_profileAWR_FORMAT=htmlNUM_DAYS=2#############################################获取指定时间的snapid的函数############################################getsnapID(){        BEGIN_SNAP_ID=`sqlplus -S / as sysdba <<-RAY                set heading off trimspool on feedback off                SELECT trim(SNAP_ID) FROM DBA_HIST_SNAPSHOT a,v\\$instance b where to_char(END_INTERVAL_TIME,'yyyymmddhh34')='$1' and a.instance_number=b.instance_number;                RAY`        END_SNAP_ID=`sqlplus -S / as sysdba <<-RAY                set heading off trimspool on feedback off                SELECT trim(SNAP_ID) FROM DBA_HIST_SNAPSHOT a,v\\$instance b where to_char(END_INTERVAL_TIME,'yyyymmddhh34')='$2' and a.instance_number=b.instance_number;                RAY`        #判断获取的snapid是否为空        if [ -z ${BEGIN_SNAP_ID} ];then                echo "The script can not get a valid snap id,please enter a right time for -b."                exit 96        fi        if [ -z ${BEGIN_SNAP_ID} ];then                echo "The script can not get a valid snap id,please enter a right time for -e."                exit 96        fi        BEGIN_SNAP_ID=`echo ${BEGIN_SNAP_ID} | sed 's/ //g'`        END_SNAP_ID=`echo ${END_SNAP_ID} | sed 's/ //g'`}#############################################获取帮助的函数############################################my_fun(){        echo "SYNOPSIS:"        echo "        ./GET_AWR.sh -b begin_time -e end_time -n awr_name"        echo "OPTIONS:"        echo "        -b specify a time for begin time of awr,format yyyymmddhh34"        echo "        -e specify a time for begin time of awr,format yyyymmddhh34"        echo "        -n specify a name for name of awr"        echo "EXAMPLE:"        echo "        ./GET_AWR.SH -b 2019051708 -e 2019051709 -n test"        echo "        ./GET_AWR.sh -b \`date +'%Y%m%d18' -d '+1 day ago'\` -e \`date +'%Y%m%d19' -d '+1 day ago'\`  -n test"}#############################################脚本入口,获取参数############################################if [ $# -lt 1 ];then        echo "You must specify parameters:"        echo "        -b begin time of awr"        echo "        -e end time of awr"        exit 99fiwhile (($#>=1))do        if [ "$1" == "-b" ];then                shift                awrbegintime=$1                shift                continue        fi        if [ "$1" == "-e" ];then                shift                awrendtime=$1                shift                continue        fi        if [ "$1" == "-n" ];then                shift                awrname=$1                shift                continue        fi        if [ "$1" == "-h" ];then                my_fun                exit 0        fi        shiftdone#############################################健壮性检查#############################################参数不可以为空if [ -z ${awrbegintime} ];then        echo "You must specify parameters:-b for begin time of awr"        exit 98fiif [ -z ${awrendtime} ];then        echo "You must specify parameters:-e for end time of awr"        exit 98fiif [ -z ${awrname} ];then        echo "You must specify parameters:-n for report name of awr"        exit 98fi#判断参数为时间date -d "${awrbegintime:0:8} ${awrbegintime:8:2}" > /dev/null 2>&1if [ $? -ne 0 ];then        echo "The valus of -b is invalid date."        exit 97fidate -d "${awrendtime:0:8} ${awrendtime:8:2}" > /dev/null 2>&1if [ $? -ne 0 ];then        echo "The valus of -e is invalid date."        exit 97fi#############################################执行函数,获取snap id############################################getsnapID ${awrbegintime} ${awrendtime}#############################################定义awr报告的路径############################################AWR_LOG=/u02/logout/awr/AWR_${awrname}_${awrbegintime}_${awrendtime}.html#############################################获取awr报告############################################echo -e "$AWR_FORMAT\n$NUM_DAYS\n$BEGIN_SNAP_ID\n$END_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql) > /dev/null#############################################帮助:#       参数区分大小写#       -b awr的开始时间,格式:yyyymmddhh34#   -e awr的结束时间,格式:yyyymmddhh34#   -n awr报告中的名字#例子:#       ./GET_AWR.SH -b "2019051708" -e "2019051709" -n test#       ./GET_AWR.sh -b `date +'%Y%m%d18' -d '+1 day ago'` -e `date +'%Y%m%d19' -d '+1 day ago'`  -n test############################################

"怎么获取AWR的脚本"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0