ORACLE 11.2.0.4 for HPUNIX 业务SQL处理数据量变化导致的CPU使用率超标触发告警

    某客户oracle 11.2.0.4 rac for HPUNIX系统,由于业务SQL处理的数据量变化导致的CPU使用率超标,引起告警。

一、问题描述

    2018年9月22日,2:50:00核心库的CPU使用率达到87%触发告警。

二、提取的分析日志

 提取数据库问题时段数据库告警日志;取数据库2018年9月22日 1:00:00~2:00:00、2:00:00~3:00:00的awr及其对比;取数据库2018年9月22日 1:00:00~2:00:00、2:00:00~3:00:00的的OSW并生成图表观察2个时间点的CPU使用情况进行对比。

三、问题分析

 1、oswatch提取CPU使用率相关对比

2018-9-21 1:00:00~3:00:00

2018-9-22 1:00:00~3:00:00

根据2018-9-21~22 1:00:00~3:00:00系统使用率对比,确定2018-9-22 1:30:00~2:00:00,系统的CPU使用率接近90%。

 2、对比2018-9-21~22 1:00:00~2:00:00两个时间段的awr

    2.1 数据库2018-9-21~22 1:00:00~2:00:00两个时间的DBTIME对比

    从数据库dbtime对比,2018-9-21 1:00:00~2:00:00 dbtime指标值是3923,2018-9-22 1:00:00~2:00:00 dbtime指标值是4230,相差300并不算太多。

    2.2 2018-9-21~22 1:00:00~2:00:00两个时间的LOAD PROFILE对比

 

    2018-9-21 1:00:00~2:00:00 loadprofile parses指标值高达337每秒,2018-9-22 1:00:00~2:00:00 loadprofile parses指标值只有21.2;2018-9-21 1:00:00~2:00:00 loadprofile Hard parses指标值高达154每秒,2018-9-22 1:00:00~2:00:00 loadprofile parses指标值只有10.7。loadprofile对比可知,2018-9-22 1:00:00~2:00:00,硬解析比较严重,硬解析严重会导致latch争用事件,引起数据库服务器CPU飙高。

 2018-9-21 1:00:00~2:00:00 数据库顶级等待事件对比,2018-9-22 1:00:00~2:00:00 等待事件latch:row cache objects、latch:cache buffers chans严重,吻合loadproile中硬解析相关指标Hard parses、parses高的情况。

2.3数据库顶级等待事件对比

  2018-9-21~22 1:00:00~2:00:00 数据库TOP SQL ordered by Elapsed Time对比,2018-9-22 1:00:00~2:00:00数据库自动任务SQL tunning Advisor激活并占用比较多的CPU资源。 

   2.4 2018-9-21~22 1:00:00~2:00:00两个时间对比发现的问题SQL

    2018-9-22 1:00:00~2:00:00时段有一条SQL语句占用CPU比较突出:1小时内执行5645次,每次执行平均耗时14.56秒。

 af535njf3m8fv

select * from adkmx where ((((faredm=:b0 and jiluzt='0') and yngyjg=:b1) and jioyrq=:b2) and joyisj='LN_JIEX') order by HUOBDH, DAIKZH, MXXHAO

    

     对比af535njf3m8fv的执行历史,发现2018-9-22日,该sql语句fetch的数据量394304比平时的6300多了近70倍,行处理776277比平时1400多了近554倍,cpu消耗54548.460比平时的700多近80倍,这是af535njf3m8fv在执行时CPU消耗过高的真正原因。

四、问题总结

   1、af535njf3m8fv在2018-9-22日 fetch的数据量394304比平时的6300多了近70倍,行处理776277比平时1400多了近554倍,cpu消耗54548.460比平时的700多近80倍,是af535njf3m8fv在执行时CPU消耗过高的真正原因。

2、另外,2018-9-22 1:00:00~2:00:00相比正常时段2018-9-21 1:00:00~2:00:00,数据库的硬解析比较突出。导致硬解析严重的原因是,应用的部分sql语句没有使用绑定变量,数据库没有关闭sql自适应游标共享。

  3、2018-9-22 1:00:00~2:00:00相比正常时段2018-9-21 1:00:00~2:00:00,数据库有SQL TUNNING ADVISOR自动维护任务执行,并且消耗比较高的CPU资源。

五、建议

 1、  请甲方老师联系业务评估SQL(af535njf3m8fv)处理数据量的合理性,避免数据库服务器夯死;

 2、  数据库关闭sql游标共享;

 3、  调整应用sql语句使用绑定变量;

 4、关闭数据库STA(SQL Tunning advisor);


 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在解答该问题前,需要说明一下依赖包的概念。依赖包是指在安装和使用Oracle 11.2.0.4数据库时所需的其他软件包或库文件。这些依赖包主要包括操作系统级别的依赖和Oracle自身的依赖。以下是Oracle 11.2.0.4依赖包的一些主要内容: 1. 操作系统级别的依赖包:Oracle 11.2.0.4需要基于其运行的操作系统提供一些必需的支持和依赖。具体依赖包的名称和版本会根据操作系统的不同而有所变化。 2. C/C++编译器:在安装Oracle 11.2.0.4之前,需要确保系统上安装了C/C++编译器。这些编译器通常是为了编译安装过程中的一些源代码而需要的。 3. JDK(Java Development Kit):Oracle数据库的某些功能可能需要使用Java,因此在安装Oracle 11.2.0.4之前,需要安装适当版本的JDK。 4. 网络依赖包:Oracle 11.2.0.4需要与其他计算机进行网络通信,因此可能需要安装一些网络相关的依赖包,如TCP/IP协议栈、网络驱动程序等。 5. 安全性相关依赖包:Oracle 11.2.0.4数据库的安全性也需要一些依赖包的支持,如SSL/TLS库等。 需要注意的是,具体的依赖包清单可能因操作系统版本、架构和配置等因素而有所不同。因此,在安装Oracle 11.2.0.4之前,建议参考官方文档或相关技术支持资料,获取正确的依赖包清单,并根据实际情况进行安装和配置。 ### 回答2: Oracle 11.2.0.4作为一个完整的数据库管理系统,它有许多依赖包。以下是一些主要的依赖包: 1. Java Development Kit (JDK) - Oracle数据库的某些功能和工具依赖于JDK。因此,在安装Oracle 11.2.0.4之前,需要先安装适当版本的JDK。 2. GNU C库(glibc)- glibc是一个重要的依赖包,它提供了很多Oracle的运行时环境所需的库和函数。 3. GNU C++库(libstdc++)- Oracle数据库在某些功能和工具中使用C++库。安装过程中需要相应的libstdc++库。 4. libaio - libaio(异步IO库)是一个Linux下的异步IO库,用于提供对原生异步IO特性的支持。Oracle 11.2.0.4数据库在Linux上需要使用libaio以提高性能。 5. libpthread - 在类Unix系统中,libpthread是POSIX线程库的实现。Oracle数据库使用libpthread来管理并发执行和线程操作。 6. libm - libm是一个标准ANSI C库,为数学库提供支持。Oracle数据库中的一些数学函数和运算依赖于libm。 7. libnsl - libnsl是一个网络服务库,为Oracle的网络通信功能提供支持。 除了上述主要的依赖包之外,还可能涉及其他依赖包,具体取决于操作系统以及其他Oracle所需环境的配置和安装选项。 总之,正确安装Oracle 11.2.0.4数据库需要确保所有必备的依赖包都已安装,并正确配置环境变量和系统设置以支持数据库的正常运行。 ### 回答3: oracle11.2.0.4是一个广泛使用的数据库管理系统,它包含了许多依赖包,以确保系统的正常运行和完整功能。以下是oracle11.2.0.4所依赖的一些重要包和组件: 1. Linux或Windows操作系统:oracle11.2.0.4可以在多个操作系统上运行,例如Linux和Windows。因此,它依赖于这些操作系统的核心组件和驱动程序。 2. Java Development Kit(JDK):oracle11.2.0.4使用Java编写一些组件和工具,所以它依赖于JDK,这是Java语言的开发包。 3. 网络组件:oracle11.2.0.4需要一些用于网络通信的组件,例如TCP/IP协议栈和网络驱动程序。 4. C/C++运行时库:oracle11.2.0.4中的一些组件和库是使用C或C++编写的,因此它依赖于这些运行时库。 5. 数据库管理工具:oracle11.2.0.4使用各种工具来管理和监控数据库,包括Enterprise Manager和SQL Developer等。这些工具是oracle11.2.0.4所依赖的重要组件。 6. 数据库驱动程序:oracle11.2.0.4可以与不同的编程语言和应用程序进行交互,所以它依赖于各种数据库驱动程序,如JDBC和ODBC驱动程序。 7. 其他库和工具:oracle11.2.0.4还可能依赖于其他一些库和工具,用于支持特定的功能和特性,例如XML处理库和多语言支持库。 总之,oracle11.2.0.4作为一个完整的数据库管理系统,它依赖于操作系统、Java开发工具、网络组件、C/C++运行时库、数据库管理工具、数据库驱动程序和其他一些库和工具,以确保系统可以正常运行和提供完整的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值