我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

这篇文章给大家介绍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致使系统宕机该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

win10系统cpu占用率高怎么办

小编给大家分享一下win10系统cpu占用率高怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法一:按Win按钮,输入regedit回车打开注册表编辑器,展
2023-06-28

遇见Linux系统CPU使用率过高怎么办?

导读对于新手来说,可能各种进程管理工具用的还不算熟悉,那么遇见Linux系统CPU系统使用率过高怎么办?那么就学习一下吧。查看CPU使用
2023-06-05

XP系统开机卡且searchindexer.exe进程占用过高怎么办

这篇文章将为大家详细讲解有关XP系统开机卡且searchindexer.exe进程占用过高怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。操作步骤:1、首先开机按F8键进入到安全模式(正常模式卡机无法
2023-06-13

win8.1系统不能设置使用小键盘该怎么办?

有些电脑安装完外设之后发现自己的外设没有小键盘,小键盘变成了控制鼠标的了,查了各种帖子发现没有一个可以解决的,我的笔记本也是这个问题所以这次我来帮大家,解决这个问题当初可是急的我想砸键盘。 1、点击左下角,2、点击放大镜,也可以Ctrl+a
2022-06-04

win10系统使用输入法就死机怎么办

这篇文章主要为大家展示了“win10系统使用输入法就死机怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win10系统使用输入法就死机怎么办”这篇文章吧。1、首先我们打开控制面板【开始菜单点
2023-06-28

win10系统网络数据使用量为0怎么办

这篇文章主要介绍win10系统网络数据使用量为0怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、按“win+r”打开运行,输入“servoces.msc”。二、在弹出的服务窗口中,按“d”找到并打开“Diag
2023-06-28

Win11系统exploret.exe内存占用过大怎么办?exploret.exe内存高三种解决方法

Win11系统expandroidloret.exe内存占用过大怎么办?explorer.exe是Windows程序管理器或者文件资源管理器。这个程序是我们电脑开机之后必须运行的一个程序。关闭它将会导致桌面无法正常的显示。有用户发现这个程序
2023-05-19

轻量应用服务器换系统怎么办啊苹果手机

如果您想更换系统,以下是一个简单的步骤:准备工具和材料:您需要:-一个-一个空的系统盘,您的设备的驱动程序-一组您的设备ID和密码-一台您可以使用的计算机作为操作系统:Mac、Windows、Linux、iOS等。连接到您的计算机:打开您的计算机电源并启动设备。打开您的操作系统:按照操作系统的指示,使用您的设备驱动程序或设备ID打开设备管理器。找到您的设备:从设备管理器的菜单中,找到您
2023-10-26

轻量应用服务器换系统怎么办啊苹果13手机

如果您的应用服务器出现故障或更换了新的系统,那么您可以尝试以下方法来处理:重启应用:如果您的应用服务器能够正常启动并正常工作,那么您可以尝试重启它以重新启动计算机。检查更新:如果您的应用服务器更新过,那么您应该检查更新是否是最新的版本,并确保更新与您的设备保持同步。关闭应用:如果您的应用服务器支持关闭,那么您可以尝试关闭它们以释放资源并解决应用服务器故障或更换系统后需要重新安装应用的问题
2023-10-26

轻量应用服务器更换系统怎么办啊苹果手机

如果您的应用服务器出现问题,那么重新安装应用可能是一个解决方案。但是,如果是更换系统引起的问题,则需要更多技巧和时间来重新安装应用程序或重启服务器。在此过程中,您可以尝试以下步骤:检查应用程序:如果您在更换应用程序之前没有备份应用程序或应用程序数据,则您需要检查应用程序和数据是否完整无缺。在某些情况下,可能需要重新安装应用程序或数据来解决问题。重新启动服务器:如果您的应用服务器没有出现任何
2023-10-26

轻量应用服务器换系统怎么办理的呢苹果手机

如果您的苹果手机已经换系统了,需要更换新的操作系统,可以按照以下步骤进行操作:打开苹果的官方网站,选择“帮助与支持”,在“技术支持”中找到“MacOSSnowLeopard”。在技术支持页面中,您可以选择联系苹果的客服人员进行咨询。如果您已经有了备份,也可以在此时向苹果的客服人员寻求帮助。在“技术支持”页面中,您可以点击“更多问题”按钮,并从中选择与您当前手机型号相关的问题。如果您选择
2023-10-26

轻量应用服务器更换系统怎么办啊苹果12手机

如果您的应用服务器出现问题,需要进行重新安装或更新。以下是一些可能有用的步骤:打开苹果的AppStore应用程序页面,登录您的账户,然后进入“开发者”应用程序页面,选择“重新安装应用程序”。选择系统要求的更新文件,点击“安装更新”按钮。根据您的设备和系统要求重新设置应用程序,包括安装更新的版本号、更新数量和位置。重新启动应用程序,然后等待应用程序更新完成。如果系统更新没有成功,可以尝试
2023-10-26

轻量应用服务器更换系统怎么办啊苹果13手机

如果您的应用服务器出现问题,以下是一些替换系统的建议:将应用服务器更新到您的最新版本:应用服务器最新版本的更新会包括修复任何问题或漏洞的修补程序。使用现有的应用服务器:如果您的应用服务器运行在另一个操作系统上,您可能需要升级到您选择的操作系统版本以便它可以与最新的应用程序兼容。寻找替代的系统:如果您正在使用现有的操作系统,则可以考虑将系统升级到另一个系统。您可以将手机从一个应用商店移到另
2023-10-26

系统自带网络硬盘SkyDrive无法使用提示使用Microsoft账户登录该怎么办

本篇文章给大家分享的是有关系统自带网络硬盘SkyDrive无法使用提示使用Microsoft账户登录该怎么办,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  故障现象:  当您
2023-06-14

轻量应用服务器换系统怎么办啊苹果13手机能用吗

如果您的苹果13手机不能正常使用,您可以考虑以下几个解决方案:检查手机是否安装了新的操作系统:如果安装了新的操作系统,则可能会需要更新和安装驱动程序,如果您没有安装,您可以联系苹果技术支持,他们可以帮助您解决。联系苹果客服:如果以上解决方案不可行,您可以联系苹果客服解决。苹果客服会帮助您解决问题并提供建议。检查手机配置:如果您的手机配置不够稳定,可能会导致系统崩溃或无法启动。您可以使用系
2023-10-26

轻量应用服务器换系统怎么办啊安全吗苹果手机

如果您的应用服务器更换系统并进行安全更新后,您的应用程序仍然存在安全风险。以下是一些方法,可以帮助您避免应用程序被恶意利用并保证应用程序的完整性和可用性:使用最新的操作系统更新:您可以通过在设备上安装操作系统更新程序来获得最新的应用程序更新。这些更新提供了修补漏洞和更新软件的额外功能。请务必先进行升级,以确保应用程序的完整性和可用性。使用安全的应用程序开发工具:使用安全的应用程序开发工具,
2023-10-26

腾讯轻量应用服务器更换系统怎么办啊苹果手机

如果您的QQ轻量应用服务器更换系统,您可以按照以下步骤操作:确认更换后的新系统是否已经安装完所有您需要更新或维护的应用软件。如果还没有安装,请安装它们。确认更换后的新系统是否支持您现有的应用软件。如果您的应用程序不兼容,或者您的应用软件版本过低,可能会出现安装更新失败的问题。确认是否有足够的空间来存储所有您需要更新的应用软件。如果空间不足,您可能无法存储所有需要更新的应用软件。确定新系
2023-10-26

轻量应用服务器换系统怎么办理的呢苹果手机怎么设置

如果您想要将苹果手机换系统,请按照以下步骤操作:打开iTunes软件。登录您的账号,选择“创建一个新的iPhone和iPad”。输入您的旧手机和新手机的序列号。在“恢复备份”中恢复您的信息和数据。点击“恢复所有”,将会创建一个新的iPhone和iPad。现在您可以开始使用新的系统了。请注意,如果您的旧手机或iPad存在系统问题,请在完成操作前请备份您的数据以免数据损坏。
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录