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

本文介绍了一款用于监控SQL执行情况的脚本pbm_wait.sh。该脚本能够定期检查执行时间超过设定阈值的SQL语句,并收集相关执行计划及SQL Monitor信息,最后将这些信息通过邮件发送给运维人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:定期执行该脚本,对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 '1d;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 '1d;$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" 234924619@qq.com < "${DIR}/$RESULT" "
eval $MAIL
mv *.rpt reports/
fi
awk '{print $2}' $RESULT > $GRACE
mv *.result results/
复制代码

转载于:https://juejin.im/post/5b9f75ac6fb9a05d2b6dadea

ORACLE 健康检查与性能分析报告,内容包括: 1: 报告综述..........................................................................................................3 1.1 目的说明....................................................................................... 3 1.2 Server整体状况............................................................................. 3 2: 主机与数据库配置...............................................................................................4 2.1 主机配置.......................................................................................... 4 3: 操作系统可用性..................................................................................................5 3.1 文件系统使用状况............................................................................... 5 3.2 操作系统性能分析............................................................................... 5 4: 数据库可用性....................................................................................................7 4.1 Database Session Chart................................................................. 7 4.2 日志文件状态..................................................................................... 7 4.3 控制文件状态..................................................................................... 9 4.4 归档日志状态................................................................................... 10 4.5 表空间使用状况................................................................................ 10 4.6 数据库文件读写状况.......................................................................... 11 4.7 Invalid Objects............................................................................ 12 4.8 Disabled Triggers ........................................................................ 12 4.9 数据库备份状况................................................................................ 13 4.10 数据库恢复................................................................................... 13 5: 数据库性能分析..............................................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值