iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >ORACLE占用大量系统CPU致使系统宕机该怎么办
  • 879
分享到

ORACLE占用大量系统CPU致使系统宕机该怎么办

2023-06-06 00:06:23 879人浏览 八月长安
摘要

这篇文章给大家介绍oracle占用大量系统CPU致使系统宕机该怎么办,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的sql语句

这篇文章给大家介绍oracle占用大量系统CPU致使系统宕机该怎么办,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的sql语句,这种SQL语句大大的消耗了CPU资源,导致整个系统性能低下。当然,引起严重性能低下的SQL语句的原因是多方面的,具体的原因要具体的来分析,下面通过一个实际的案例来说明如何来诊断和解决CPU利用率高的这类问题。

操作系统linux7.0

数据库:Oracle11.2.0.4

问题描述:现场工程师汇报数据库非常慢,几乎所有应用操作均无法正常进行。不久后,系统断开连接,宕机。

首先重启系统后,启动数据库。执行top发现CPU资源几乎消耗殆尽,存在很多占用CPU很高的进程,而内存和I/O都不高,具体如下:

last pid: 26136;  load averages:  8.89,  8.91,  8.12                                                                      

216 processes: 204 sleeping, 8 running, 4 on cpu

CPU states:  0.6% idle, 97.3% user,  1.8% kernel,  0.2% iowait,  0.0% swap

Memory: 8192M real, 1166M free, 14M swap in use, 8179M swap free

PID USERNAME THR PRI NICE  SIZE   RES STATE   TIME    CPU COMMAND

25725 oracle     1  50    0 4550M 4508M cpu2   12:23 11.23% oracle

25774 oracle     1  41    0 4550M 4508M run    14:25 10.66% oracle

26016 oracle     1  31    0 4550M 4508M run     5:41 10.37% oracle

26010 oracle     1  41    0 4550M 4508M run     4:40  9.81% oracle

26014 oracle     1  51    0 4550M 4506M cpu6    4:19  9.76% oracle

25873 oracle     1  41    0 4550M 4508M run    12:10  9.45% oracle

25723 oracle     1  50    0 4550M 4508M run    15:09  9.40% oracle

26121 oracle     1  41    0 4550M 4506M cpu0    1:13  9.28% oracle

25745 oracle     1  41    0 4551M 4512M run     9:33  9.28% oracle

26136 oracle     1  41    0 4550M 4506M run     0:06  5.61% oracle

  409 root      15  59    0 7168K 7008K sleep 173.1H  0.52% picld

25653 oracle     1  59    0 4550M 4508M sleep   1:01  0.46% oracle

25565 oracle     1  59    0 4550M 4508M sleep   0:07  0.24% oracle

25703 oracle     1  59    0 4550M 4506M sleep   0:08  0.13% oracle

25701 oracle     1  59    0 4550M 4509M sleep   0:23  0.10% oracle

于是先查看数据库的告警日志ALERT文件,并没有发现有什么错误存在,日志显示数据库运行正常,排除数据库本身存在问题。

然后查看这些占用CPU资源很高的Oracle进程究竟是在做什么操作,使用如下SQL语句:

select sql_text,spid,v$session.program,process  from

v$sqlarea,v$session,v$process

where v$sqlarea.address=v$session.sql_address

and v$sqlarea.hash_value=v$session.sql_hash_value

and v$session.paddr=v$process.addr

and v$process.spid in (PID);

用top中占用CPU很高的进程的PID替换脚本中的PID,得到相应的Oracle进程所执行的SQL语句,发现占用CPU资源很高的进程都是执行同一个SQL语句:

select username "username", to_char(timestamp,'DD-MON-YYYY HH24:MI:SS') "time_stamp", action_name "statement", os_username "os_username", userhost "userhost", returncode||decode(returncode,'1004','-Wrong Connection','1005','-NULL PassWord','1017','-Wrong Password','1045','-Insufficient Priviledge','0','-Login Accepted','--') "returncode" from sys.dba_audit_session where (sysdate - timestamp)*24 < 1 and returncode <> 0 order by timestamp;

基本上可以肯定是这个SQL引起了系统CPU资源大量被占用,那究竟是什么原因造成这个SQL这么大量占用CPU资源呢,从上面的SQL语句中我们可以看到sys.dba_audit_session这张表,由此可以确定是由于审计的原因导致数据库占用大量CPU。

查看数据库审计信息:

SQL> show parameter audit

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest                      string      /u01/app/oracle/admin/orcl/adump

audit_sys_operations                 boolean     FALSE

audit_syslog_level                   string

audit_trail                          string      DB

可以看到数据库审计为开启状态,并且将audited record的存放在数据库里(sys.aud$)中。

问题处理方法:

如果审计不是必须的,可以关掉审计功能;

SQL> alter system set audit_trail=none scope=spfile;

SQL>showdown immediate;

SQL>startup

删除已有的审计信息

可以直接truncate表aud$,

或者采取dbms_audit_mgmt来清除。

或者将aud$表移到另外一个表空间下,以减少system表空间的压力和被撑爆的风险。

附:11g中有关audit_trail参数的设置说明:

AUDIT_TRAIL

PropertyDescription
Parameter typeString
SyntaxAUDIT_TRAIL = { none | os | db [, extended] | xml [, extended] }
Default valuenone
ModifiableNo
BasicNo

AUDIT_TRAIL enables or disables database auditing.

Values:

  • none

    Disables standard auditing. This value is the default if the AUDIT_TRAIL parameter was not set in the initialization parameter file or if you created the database using a method other than Database Configuration Assistant. If you created the database using Database Configuration Assistant, then the default is db.

  • os

    Directs all audit records to an operating system file. Oracle recommends that you use the os setting, particularly if you are using an ultra-secure database configuration.

  • db

    Directs audit records to the database audit trail (the SYS.AUD$ table), except for records that are always written to the operating system audit trail. Use this setting for a general database for manageability.

    If the database was started in read-only mode with AUDIT_TRAIL set to db, then Oracle Database internally sets AUDIT_TRAIL to os. Check the alert log for details.

  • db, extended

    PerfORMs all actions of AUDIT_TRAIL=db, and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$ table, when available. These two columns are populated only when this parameter is specified.

    If the database was started in read-only mode with AUDIT_TRAIL set to db, extended, then Oracle Database internally sets AUDIT_TRAIL to os. Check the alert log for details.

  • xml

    Writes to the operating system audit record file in XML format. Records all elements of the AuditRecord node except Sql_Text and Sql_Bind to the operating system XML audit file.

  • xml, extended

    Performs all actions of AUDIT_TRAIL=xml, and populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$table, wherever possible. These columns are populated only when this parameter is specified.

You can use the SQL AUDIT statement to set auditing options regardless of the setting of this parameter.

关于ORACLE占用大量系统CPU致使系统宕机该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: ORACLE占用大量系统CPU致使系统宕机该怎么办

本文链接: https://www.lsjlt.com/news/245316.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ORACLE占用大量系统CPU致使系统宕机该怎么办
    这篇文章给大家介绍ORACLE占用大量系统CPU致使系统宕机该怎么办,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的SQL语句...
    99+
    2023-06-06
  • win10系统cpu占用率高怎么办
    小编给大家分享一下win10系统cpu占用率高怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法一:按Win按钮,输入regedit回车打开注册表编辑器,展...
    99+
    2023-06-28
  • win10系统cpu占用100%怎么解决
    这篇文章主要介绍“win10系统cpu占用100%怎么解决”,在日常操作中,相信很多人在win10系统cpu占用100%怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10系统cpu占用100%怎...
    99+
    2023-07-01
  • ​win11系统mscorsvw占用cpu高怎么解决
    当Windows 11的mscorsvw进程占用高CPU时,可以尝试以下解决方法: 等待一段时间:mscorsvw进程通常在系统...
    99+
    2023-10-22
    ​win11
  • win10系统cpu占用过高怎么解决
    今天小编给大家分享一下win10系统cpu占用过高怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win10系统cpu...
    99+
    2023-07-01
  • 在Linux系统中怎么限制CPU占用率
    这篇文章主要讲解了“在Linux系统中怎么限制CPU占用率”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中怎么限制CPU占用率”吧!Linux内核是一名了不起的马戏表演者,它...
    99+
    2023-06-13
  • 遇见Linux系统CPU使用率过高怎么办?
    导读对于新手来说,可能各种进程管理工具用的还不算熟悉,那么遇见Linux系统CPU系统使用率过高怎么办?那么就学习一下吧。查看CPU使用...
    99+
    2023-06-05
  • win10电脑系统CPU占用过高怎么解决
    这篇文章主要讲解了“win10电脑系统CPU占用过高怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10电脑系统CPU占用过高怎么解决”吧!win10电脑系统CPU占用过高的解决...
    99+
    2023-07-01
  • Linux系统ghostgg该怎么使用
    本篇文章为大家展示了Linux系统ghostgg该怎么使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。备份对于服务器来说是一个非常重要的工作,可以防止系统出现操作失误或系统故障导致数据丢失。常用的...
    99+
    2023-06-28
  • Linux系统RPM该怎么使用
    Linux系统RPM该怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。RPM是Linux系统非常重要的一个工具,除了核心模块不能通过RPM进行安装,其他模块均可通过RPM...
    99+
    2023-06-28
  • windows电脑的cpu散热不良导致系统蓝屏怎么办
    这篇文章将为大家详细讲解有关windows电脑的cpu散热不良导致系统蓝屏怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。【故障现象】一台电脑在保存文件时经常出现死的情况,重新安装操作系统时不管是Wi...
    99+
    2023-06-28
  • win10系统刚开机电脑CPU就爆满怎么办
    如果在开机后发现电脑的CPU使用率异常高,可以尝试以下方法解决问题:1. 查找导致高CPU使用率的进程:打开任务管理器(可通过按下C...
    99+
    2023-08-30
    Win10
  • win10系统svchost一直占用网速怎么办
    这篇文章主要为大家展示了“win10系统svchost一直占用网速怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win10系统svchost一直占用网速怎么办”这篇文章吧。方法/步骤:打开...
    99+
    2023-06-27
  • Win7系统回收站容量大小该怎么设置?
      一般我们在电脑硬盘里删除的东西会先存放到回收站内,以防止我们误删后需要麻烦的利用一些程序找回。但回收站是有容量大小的,如果你删除的文件容量大于回收站存放的容量时,就不会进入回收站,所以设置一个合适的回收站容量是必要的...
    99+
    2023-06-09
    Win7 回收站 大小 系统
  • XP系统开机卡且searchindexer.exe进程占用过高怎么办
    这篇文章将为大家详细讲解有关XP系统开机卡且searchindexer.exe进程占用过高怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。操作步骤:首先开机按F8键进入到安全模式(正常模式卡机无法操作...
    99+
    2023-06-13
  • 操作系统用户最大进程数限制maxuproc该怎么办
    这期内容当中小编将会给大家带来有关操作系统用户最大进程数限制maxuproc该怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 问题:应用反应连接数据库会话数有限制...
    99+
    2024-04-02
  • Linux系统命令top该怎么使用
    小编今天带大家了解Linux系统命令top该怎么使用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统命令top该怎么使用...
    99+
    2023-06-28
  • Linux系统中的awk该怎么使用
    本篇文章给大家分享的是有关Linux系统中的awk该怎么使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux系统中awk 是一种处理文本文件的语言,是一个强大的文本分析...
    99+
    2023-06-28
  • Linux系统CPU占用率较高问题怎么进行排查
    本篇内容介绍了“Linux系统CPU占用率较高问题怎么进行排查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!很多运维的同学遇到这种状况往往会...
    99+
    2023-06-16
  • win10系统运行内存占用过高怎么办
      我们在使用win10系统的时候,经常会碰到电脑运行内存占用过高,导致出现卡顿、死机等问题,而且时间久了对硬盘的伤害也会增加,缩短电脑的使用寿命。那么,win10系统运行内存占用过高怎么办呢下面,小编就和大家讲解一下win10系统内存占用...
    99+
    2023-07-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作