1 创建metric 确定触发诊断阈值
监控脚本
select a.event, a.SECONDS_IN_WAIT from v$session a where blocking_session is not null and event = 'enq: TX - row lock contention' and SECONDS_IN_WAIT > 100 and rownum<2
2 创建metric 配置诊断模型
脚本测试:(详细逻辑略:如tx 具体诊断,4036 信息输出,600比对匹配)
echo "" >> /tmp/diag.log echo `date` "这是一个很严重得问题分析 " >> /tmp/diag.log echo `date` " 该问题 始作俑者 " >> /tmp/diag.log echo `date` " 该问题 开始分析 " >> /tmp/diag.log echo `date` " 该问题 .... " >> /tmp/diag.log echo `date` " 该问题 结束分析 " >> /tmp/diag.log
3 配置触发脚本
4 脚本模型如下:
[oracle@prdb19 scripts]$ more ziyu.sh LOG_FILE=/home/oracle/scripts/event.log echo $TARGET_NAME $MESSAGE $EVENT_REPORTED_TIME >> $LOG_FILE /u01/app/oem/middleware/bin/emcli collect_metric -target_type=host -target_name=prdb19 -collection=ME\$CheckTXrowlockcontention_diag > 001 [oracle@prdb19 scripts]$
5 诊断输出如下:
6 诊断可以保留数据库中(创建一个新得metric 保留数据):
metric脚本如下!
该模型得优势:诊断metric 不需要实时运行,按需执行!相比oem更正自愈功能,不需要密码!
标签:tmp,log,诊断模型,diag,metric,echo,oem,date From: https://www.cnblogs.com/notonlydba/p/18409859