獲取AWR的指令碼,可以在crontab裡面部署
使用方法可以在指令碼最後檢視,或者使用-h引數獲取幫助。
版本更新:
1 修改不能在rac環境執行的問題。
修改後獲取本節點的awr,不能指定獲取其他節點的awr
因為shell指令碼不能直接上傳,我使用雲盤分享指令碼。
指令碼獲取路徑:
連結:
提取碼:z5bb
#!/bin/bash #by raysuen #v02 . ~/.bash_profile AWR_FORMAT=html NUM_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,'yyyymmddhh24')='$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,'yyyymmddhh24')='$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 yyyymmddhh24" echo " -e specify a time for begin time of awr,format yyyymmddhh24" 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 99 fi while (($#>=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 shift done ############################################ #健壯性檢查 ############################################ #引數不可以為空 if [ -z ${awrbegintime} ];then echo "You must specify parameters:-b for begin time of awr" exit 98 fi if [ -z ${awrendtime} ];then echo "You must specify parameters:-e for end time of awr" exit 98 fi if [ -z ${awrname} ];then echo "You must specify parameters:-n for report name of awr" exit 98 fi #判斷引數為時間 date -d "${awrbegintime:0:8} ${awrbegintime:8:2}" > /dev/null 2>&1 if [ $? -ne 0 ];then echo "The valus of -b is invalid date." exit 97 fi date -d "${awrendtime:0:8} ${awrendtime:8:2}" > /dev/null 2>&1 if [ $? -ne 0 ];then echo "The valus of -e is invalid date." exit 97 fi ############################################ #執行函式,獲取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的開始時間,格式:yyyymmddhh24 # -e awr的結束時間,格式:yyyymmddhh24 # -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 ############################################
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28572479/viewspace-2644807/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 新增 cron 指令碼 (在伺服器的 cron 裡面,添上你執行指令碼的命令,現在裡面有個,你可以參考下)指令碼伺服器
- 指令碼在crontab裡沒有執行的解決辦法之一指令碼
- 分析表的crontab指令碼指令碼
- 怎麼在ajax外邊使用ajax裡面在後端獲取的資料後端
- oracle獲取ddl指令碼Oracle指令碼
- 6.DJango在views裡面對獲取資料進行操作DjangoView
- CRONTAB呼叫的備份指令碼指令碼
- shell指令碼放到crontab裡就執行不成功的問題指令碼
- 批次過程獲取指令碼指令碼
- 生成awr報告的指令碼指令碼
- 在cs頁面獲取input的值方法
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- crontab執行shell指令碼指令碼
- 獲取元素在頁面中的座標位置程式碼例項
- js獲取元素在頁面中的座標程式碼例項JS
- AWR 中 top sql 的資訊獲取 - 分析SQL
- 獲取一個陣列裡面第K大的元素陣列
- 單個過程獲取指令碼指令碼
- 透過hostname獲取IP的perl指令碼指令碼
- Java Web後臺從request裡面獲取的資料是亂碼問題JavaWeb
- 在RFT中如何通過指令碼獲取已新增到某個指令碼中的測試物件?指令碼物件
- js如何獲取元素在頁面中的位置JS
- awr自動收集指令碼指令碼
- 伺服器部署python指令碼並使用crontab定時執行伺服器Python指令碼
- shell常用指令碼&crontab設定指令碼
- crontab排程Python指令碼Python指令碼
- 後臺跑指令碼替代crontab指令碼
- 在linux上定期執行命令、指令碼(cron,crontab,anacron)Linux指令碼
- 【AWR】自動生成AWR報告指令碼以及用法指令碼
- 獲取完整的sqltext指令碼。get_fulltext.shSQL指令碼
- 指令碼:獲取當前的User Trace檔案指令碼
- 常用指令碼:獲取隱含引數指令碼
- Python 指令碼之獲取CPU資訊Python指令碼
- 獲取單個檢視DDL指令碼指令碼
- JavaScript 獲取div在頁面中座標JavaScript
- ThinkPHP 在頁面獲取當前時間PHP
- 使用shell定製awr指令碼指令碼
- 【DataGuarad】獲取standby 庫的配置資訊的指令碼指令碼