一次DB Time过高告警处理

简介:

一、背景

        某个数据库在20200312 14:00:28-15:00:18期间,监控系统发出DBTime超出阈值告警,信息如下:

image

二、问题分析

1、获取期间AWR报告,进行分析

1.1、查看Elapsed、DB Time指标

        通过AWR可以看到,服务器规格是4CPU16G,Elapsed*CPUs=239.36min远远小于DB Time(22,862.47min),反应awr统计的时间段数据库很繁忙。

image

1.2、查看Load Profile

        从下图看到,DBtime中DB cpu所占比例其实并不大,DBTime大部分是在DB Wait Time上,从Top 10 Foreground Events by Total Wait Time可以看到主要是在cursor: pin S wait on X等待上。

image

1.3、查看Top 10 Foreground Events by Total Wait Time

        从截图中可以看出,cursor: pin S wait on X等待事件占了DB time 86.9%,造成这个等待事件最常见的原因就是sql并发执行,可以从Wait Classes by Total Wait Time、SQL Statistics部分反应上面的问题。

image

1.4、查看Wait Classes by Total Wait Time、SQL Statistics

        查看下面2个截图,可以发现当前数据库并发等待事件比较突出,之后查看SQL Statistics,发现是和用户登陆权限校验的sql有关,正常来讲,第二个截图中的一些sql不会造成cursor: pin S wait on X等待事件,这个需要在更具ash报告查看下,具体是哪些sql造成cursor: pin S wait on X。

image


image


        从下面的截图来看,session数的变化也能印证可能是用户并发访问数据库引起的。

image

2、查看ash报告

        通过awr分析,问题基本可以确定是用户并发访问数据库频繁执行sql引起cursor: pin S wait on X,但是哪些sql引起,需要从ash报告中查看。
        通过下面截图可以看到,sql_id为39cbpxu5sp7zt和1dxpz6s60pyy2是造成这个现象的主要原因,接下来需要确认这两个sql频繁执行原因。

image

2.3、了解sql执行的情况

    将上面2个sql反馈给客户后,并且询问这个期间用户登陆数据库的情况,客户反馈:
        ①第一个sql是用户登陆数据库做权限校验用的,第二个是获取病人信息使用的,这两个sql都是在用户登录时触发的
        ②sql中使用了dblink,awr期间dblink有异常,不能正常执行
        ③sql不能执行,用户端端获取不到结果,护士持续发起请求,连接数据库,最终导致了上面的情况

3、总结

        上面的情况大致就是,客户端查询信息,没有得到结果,之后不断重试,并发访问,在数据库端,sql中使用了dblink,dblink在那个期间出现问题,不能执行,最终出现了上面的问题。上面如果有不正确的地方欢迎大家指正。

相关文章
RMAN备份及恢复归档日志的语法
RMAN备份及恢复归档日志的语法
1023 0
|
SQL 存储 关系型数据库
mysql 利用 performance_schema 排查 qps 过高过程记录
mysql 利用 performance_schema 排查 qps 过高过程记录
263 0
|
存储 Prometheus 监控
记一次MySQL DB实例磁盘告警的处理过程
记一次MySQL DB实例磁盘告警的处理过程
196 0
记一次MySQL DB实例磁盘告警的处理过程
|
关系型数据库 MySQL
MySQL:自动维护create_time和update_time字段
通过建表语句设置,让mysql自动维护这两个字段,那么编程的时候也能少写一部分代码
89 0
|
监控 网络协议 NoSQL
如何精确监控DB响应延时
如何精确监控DB响应延时
|
Oracle 安全 关系型数据库
为Oracle数据库在linux上配置hugepage内存管理
HugePages是Linux内核2.6以后的版本上的一个内存管理特性,它将原来4K的内存页管理单位改成更大页的管理单位
562 0
|
SQL 监控 关系型数据库
【DB吐槽大会】第40期 - PG 缺少qps计数器
大家好,这里是DB吐槽大会,第40期 - PG 缺少qps计数器
|
数据库 关系型数据库 Oracle