在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Oracle性能问题排查自动化脚本怎么写

97次阅读
没有评论

共计 2492 个字符,预计需要花费 7 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 Oracle 性能问题排查自动化脚本怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

进入 Oracle Performance troubleshooting automation scripts: Perfbot Maria

功能:定期执行该脚本,对 SQL 执行超过 n 分钟的 SQL 语句的等待事件以及相关的执行计划和 SQL monitor 的信息以邮件的形式发给运维者。

主要脚本:pbm_wait.sh

#!/bin/bash

export ORACLE_SID=$1

export SQL= sqlplus / as sysdba

export EXEC_MIN=5

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

export PATH=$PATH:$ORACLE_HOME/bin

export DIR=/home/oracle/dba/pb_maria

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

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

export RESULT=pbm_${ORACLE_SID}_wait.result

export TEMP_RESULT=pbm_${ORACLE_SID}_wait_temp.result

export FINAL_RESULT=pbm_wait_${ORACLE_SID}_final.result

export GRACE=pbm_${ORACLE_SID}_grace.log

export COUNT=1

export MAIL= mailx -s Perfbot maria report of DB $ORACLE_SID

cd $DIR

$SQL /dev/null EOF

spool ${LOG}

@wait.sql

spool off

EOF

sed -i 2d;$d $LOG

awk {if($3 ENVIRON[ EXEC_MIN]) {print $0} } $LOG $RESULT

for i in `awk {print $2} $RESULT`

do

array[$COUNT]=$i;

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

done

if [$COUNT -ne 1]

then

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

do

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

if [$? -eq 1]; then

echo ${array[$i]} $TEMP_RESULT

fi

done

fi

if [[-e $TEMP_RESULT]]; then

sort -u $TEMP_RESULT $FINAL_RESULT

COUNT=1

for i in `awk {print $1} $FINAL_RESULT`

do

array[$COUNT]=$i

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

done

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

do

$SQL /dev/null EOF

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

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

spool off

EOF

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

done

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

do

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

done

export MAIL=$MAIL [email protected] ${DIR}/$RESULT

eval $MAIL

mv *.rpt reports/

fi

awk {print $2} $RESULT $GRACE

mv *.result results/

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

其中 EXEC_MIN 参数控制着多少分钟以上的 SQL 会被写入邮件。

细心的朋友会发现,脚本中加入了 GRACE 机制,即上一次告警过的 SQL 不会接连告警,可能会隔次告警,减少无谓的告警骚扰。

调用的 sql 脚本也附上:

wait.sql

set line 220 pages 50000

set heading off

set feedback off

col username for a10

col event for a35

col program for a35

COLUMN elapsed_min FORMAT 999999999.99

select username,sql_id, ROUND((sysdate – SQL_EXEC_START)*1440 , 2) elapsed_min

,program,event

FROM V$SESSION

WHERE USERNAME IS NOT NULL

AND WAIT_CLASS NOT LIKE Idle

AND SQL_ID IS NOT NULL

AND ROUND((sysdate – SQL_EXEC_START)*1440 , 2) IS NOT NULL

order by elapsed_min desc;

sm.sql

set pagesize 50000

set long 20000

select dbms_sqltune.report_sql_monitor(SQL_ID= 1 ,TYPE= text) from dual

/

这里貌似不支持附件,注意点如下:

注意该脚本必须放在 /home/oracle/dba/pb_maria 路径使用;在该路径下创建 results 和 reports 路径来存放历史的信息。

cronjob 我设置的是 5 分钟一次。

这个脚本需要 Oracle 数据库服务器能连上互联网,才能发邮件。如果是私网的机器,则可以考虑加一台私网公网都在的 mail 服务器,将需要发的邮件的信息传送到这台 mail 服务器上,然后定时发出邮件。

以上是“Oracle 性能问题排查自动化脚本怎么写”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2492字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 亚洲综合伦理 | 久久亚洲国产精品影院文轩探花 | 思思99热在线观看精品 | 亚洲av无码精品国产成人 | 毛片视频网址 | 毛片视频免费 | 国产精品久久久十八禁 | 一级片视频免费 | 国产小受呻吟gv视频在线观看 | 色婷婷精品大在线视频 | 老司机久久影院 | 91香蕉视频成人 | 怡春院怡红院一级毛片 | 亚洲天堂视频在线 | 亚洲精品无码久久久久av麻豆 | 国产成人无码精品久久久小说 | 韩国mmwutv福利视频 | 午夜人成| 插我一区二区在线观看 | 成人精品国产亚洲欧洲 | 精品福利 | 免费看a级| 在线观看欧美一区 | 永久黄网站色视频免费 | 四虎永久在线精品免费网址 | 欧美成人毛片一级在线 | 青青草原国产在线 | 激情视频在线观看免费 | 99久久99久久久精品久久 | 99久久国产综合精品女小说 | 天天撸天天操 | 毛片网站免费在线观看 | 日本三级视频在线播放 | 国产福利在线观看第二区 | 久久无码av中文出轨人妻 | 日韩欧美在线不卡 | 蜜桃视频一区二区在线观看 | 国产一区二区三区在线免费观看 | 国产在线播放精品视频 | www国产亚洲精品久久网站 | 狠狠人妻久久久久久综合 |