欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Oracle性能問題排查自動化腳本怎么寫

小編給大家分享一下Oracle性能問題排查自動化腳本怎么寫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都做網(wǎng)站、網(wǎng)站設(shè)計的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗。創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務(wù)。


進入 Oracle Performance troubleshooting automation scripts: Perfbot Maria

功能:定期執(zhí)行該腳本,對SQL執(zhí)行超過n分鐘的SQL語句的等待事件以及相關(guān)的執(zhí)行計劃和SQL monitor的信息以郵件的形式發(fā)給運維者。

主要腳本:pbm_wait.sh

  1. #!/bin/bash

  2. export ORACLE_SID=$1

  3. export SQL='sqlplus / as sysdba'

  4. export EXEC_MIN=5

  5. export ORACLE_HOME=/opt/app/oracle/product/11GR2

  6. export PATH=$PATH:$ORACLE_HOME/bin

  7. export DIR=/home/oracle/dba/pb_maria

  8. #export MY_DATE=`date '+%d%b%y_%k%M'`

  9. export LOG=${DIR}/pbm_${ORACLE_SID}_wait.log

  10. export RESULT=pbm_${ORACLE_SID}_wait.result

  11. export TEMP_RESULT=pbm_${ORACLE_SID}_wait_temp.result

  12. export FINAL_RESULT=pbm_wait_${ORACLE_SID}_final.result

  13. export GRACE=pbm_${ORACLE_SID}_grace.log

  14. export COUNT=1

  15. export MAIL='mailx -s "Perfbot maria report of DB $ORACLE_SID"'

  16. cd $DIR

  17. $SQL > /dev/null << EOF

  18. spool ${LOG}

  19. @wait.sql

  20. spool off

  21. EOF

  22. sed -i '1d;2d;$d' $LOG

  23. awk '{if($3>ENVIRON["EXEC_MIN"]) {print $0} }' $LOG > $RESULT

  24. for i in `awk '{print $2}' $RESULT`

  25. do

  26. array[$COUNT]=$i;

  27. COUNT=$(($COUNT+1));

  28. done

  29. if [ $COUNT -ne 1 ]

  30. then

  31. for ((i=1; i<${COUNT}; i++))

  32. do

  33. grep -q ${array[$i]} $GRACE;

  34. if [ $? -eq 1 ]; then

  35. echo ${array[$i]} >> $TEMP_RESULT

  36. fi

  37. done

  38. fi

  39. if [[ -e $TEMP_RESULT ]]; then

  40. sort -u $TEMP_RESULT > $FINAL_RESULT

  41. COUNT=1

  42. for i in `awk '{print $1}' $FINAL_RESULT`

  43. do

  44. array[$COUNT]=$i

  45. COUNT=$(($COUNT+1));

  46. done

  47. for ((i=1; i<${COUNT}; i++))

  48. do

  49. $SQL > /dev/null << EOF

  50. spool ${DIR}/${ORACLE_SID}_${array[$i]}_sql.rpt

  51. @sm.sql ${array[$i]}

  52. spool off

  53. EOF

  54. sed -i '1d;$d' ${DIR}/${ORACLE_SID}_${array[i]}_sql.rpt

  55. done

  56. for ((i=1; i<${COUNT}; i++))

  57. do

  58. export MAIL=$MAIL" -a "${DIR}/${ORACLE_SID}_${array[$i]}"_sql.rpt"

  59. done

  60. export MAIL=$MAIL" 234924619@qq.com < "${DIR}/$RESULT" "

  61. eval $MAIL

  62. mv *.rpt reports/

  63. fi

  64. awk '{print $2}' $RESULT > $GRACE

  65. mv *.result results/

腳本使用方法: /home/oracle/dba/pb_maria/pbm_wait.sh 

其中 EXEC_MIN 參數(shù)控制著多少分鐘以上的SQL會被寫入郵件。

細心的朋友會發(fā)現(xiàn),腳本中加入了GRACE機制,即上一次告警過的SQL不會接連告警,可能會隔次告警,減少無謂的告警騷擾。

調(diào)用的sql 腳本也附上:

wait.sql

  1. set line 220 pages 50000

  2. set heading off

  3. set feedback off

  4. col username for a10

  5. col event for a35

  6. col program for a35

  7. COLUMN elapsed_min FORMAT 999999999.99

  8. select username,sql_id, ROUND(( sysdate - SQL_EXEC_START)*1440 , 2) elapsed_min

  9. ,program,event

  10. FROM V$SESSION

  11. WHERE USERNAME IS NOT NULL

  12. AND WAIT_CLASS NOT LIKE 'Idle'

  13. AND SQL_ID IS NOT NULL

  14. AND ROUND(( sysdate - SQL_EXEC_START)*1440 , 2) IS NOT NULL

  15. order by elapsed_min desc;


sm.sql

  1. set pagesize 50000

  2. set long 20000

  3. select dbms_sqltune.report_sql_monitor(SQL_ID=>'&&1',TYPE=>'text') from dual

  4. /



這里貌似不支持附件,注意點如下:

注意該腳本必須放在/home/oracle/dba/pb_maria路徑使用;在該路徑下創(chuàng)建results和reports路徑來存放歷史的信息。

cronjob我設(shè)置的是5分鐘一次。

這個腳本需要Oracle數(shù)據(jù)庫服務(wù)器能連上互聯(lián)網(wǎng),才能發(fā)郵件。如果是私網(wǎng)的機器,則可以考慮加一臺私網(wǎng)公網(wǎng)都在的mail服務(wù)器,將需要發(fā)的郵件的信息傳送到這臺mail服務(wù)器上,然后定時發(fā)出郵件。

以上是“Oracle性能問題排查自動化腳本怎么寫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:Oracle性能問題排查自動化腳本怎么寫
路徑分享:http://www.chinadenli.net/article8/gpdcop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈軟件開發(fā)建站公司網(wǎng)站制作標簽優(yōu)化品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作