热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ParallelQuery导致的ORA-04031

一个朋友遇到ORA-04031问题。虽然这个错误是非常常见的,然而这里的Case也有点让人为之震惊!

一个朋友遇到ORA-04031问题。虽然这个错误是非常常见的,然而这里的Case 也有点让人为之震惊!

一个朋友遇到ORA-04031问题。虽然这个错误是非常常见的,然而这里的Case 也有点让人为之震惊!

Tue Aug 26 11:51:13 2014
Errors in file /Oracle/app/oracle/diag/rdbms/xx/xx1/trace/xx1_p485_28873.trc (incident=1589637)
ORA-04031: 无法分配 32792 字节的共享内存 ("shared pool","unknown object","sga heap(2,0)","PX msg pool")
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Tue Aug 26 11:51:15 2014
。。。。。。。。
DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
Tue Aug 26 11:57:12 2014
PMON failed to acquire latch, see PMON dump
Tue Aug 26 11:57:15 2014
DIAG (ospid: 14345) has not called a wait for 49 secs.
Tue Aug 26 11:57:58 2014
Errors in file /oracle/app/oracle/diag/rdbms/xx/xx1/trace/xx1_qmnc_15686.trc (incident=1608420)
ORA-00445: background process "q00T" did not start after 120 seconds
Tue Aug 26 11:58:17 2014
。。。。。。。。
Tue Aug 26 12:07:31 2014
WARNING: inbound connection timed out (ORA-3136)
Tue Aug 26 12:07:31 2014
WARNING: inbound connection timed out (ORA-3136)
Tue Aug 26 12:07:46 2014
PMON failed to acquire latch, see PMON dump

上述信息为Rac 节点1的信息,对于节点2,信息也基本类似,这里就不贴了。从日志来看,是p621出异常,根据这一点
我们可以判断为是并行进程出现了异常,接着从下面的ORA-04031错误也可以证实这一点。
ORA-04031: 无法分配 32792 字节的共享内存 (“shared pool”,”unknown object”,”sga heap(2,0)”,”PX msg pool”)

从这个错误来看,可以判断P621进程无法分别32792 byte的内存了。这部分内存是需要为Px msg pool进程分配。

这里首先说说PX msg pool是干什么的?

Px msg pool其实是用于Parallel 操作的。通常情况下这部分内存区域应该是从large pool中分配。然而很多业务系统中
由于设置不到,导致parallel 操作仍然使用shared pool的memory。这一点,我们稍后讨论。

接着我们看后面的日子发现PMON进程都无法获得latch了,然后这个时候系统已经不行了。 很明显这个问题的根源就是前面
的ORA-04031错误,这里我们需要分析下trace,来确认下,为什么进程会报错。

该trace文件(xx1_p485_28873.trc)的内容如下:

Allocation Request Summary Informaton
=====================================
Current information setting: 04014fff
SGA Heap Dump Interval=3600 seconds
Dump Interval=300 seconds
Last Dump Time=08/26/2014 11:51:12
Dump Count=1
Allocation request for: PX msg pool
Heap: c00000012fe3ae08, size: 32792
******************************************************
HEAP DUMP heap desc=c00000012fe3ae08
extent sz=0xfe0 alt=248 het=32767 rec=9 flg=-126 opc=0
parent=0000000000000000 owner=0000000000000000 nex=0000000000000000 xsz=0x10000000 heap=0000000000000000
fl2=0x20, nex=0000000000000000, dsxvers=1, dsxflg=0x0
dsx first ext=0x30000000
latch set 2 of 2
durations disabled for this heap
reserved granules for root 0 (granule size 268435456)

可以看到,PX msg pool请求获得32792 byte的内存大小,从什么地方申请呢? heap 2,也就是shared pool的第2个subpool。

但是却无法分配这么多,以至于报错,下面我们来看下subpool 2的实际情况:

Memory Utilization of Subpool 2
================================
Allocation Name Size
___________________________ ____________
"free memory " 1431685456 ++++整个subpool 2 还有1.4G free memory左右
"miscellaneous " 1680
"vem_user_actlog1 " 0
"SWEEPERR " 0
"File Space Usage " 112144
"trace_knlasg " 0
"ges big msg buffers " 56801208
"dsktab_kfgsg " 57128
"hot latch diagnostics " 0
"gcs res hash bucket " 4194304
"Wait event pointers " 0
"gcs res latch table " 0
"file state object " 4698096
"vips_package_size " 0
"SEQ S.O. " 1057920
。。。。
"gcs resources " 223317648
"gc lock state " 0
"kglsim alloc latch area " 0
"gcs affinity " 0
"gcs opaque in " 49248
"gcs pnp histo " 0
"ges resource " 605005184
"knlp free small rcv buf " 0
"SQLA " 280160
"PRTI " 0
"SQLP " 53608
"SQLK " 28336
"gcs dynamic r " 2556288
"work area tab " 236640
"plwpil:wa " 0
"kebm run-once actions " 0
"grptab_kfgsg " 0
"AW SGA " 0
"dbktb: trace buffer " 53673984
"v_swperrcount " 0
"ksunfy : SSO free list " 27834240
"ksxp IPC state object " 346448
"ksdhng: cache history " 0
"DFW_CONFIG_CAPTURE " 0
"enqueue resources " 862232
"kzekm heap descriptor " 0
"kelt translation table " 0
"IPS_PACKAGE_UNPACK_HISTOR" 0
"kglsim hash table bkts " 2097152
"KSXR global channels " 0
"ges enqueues " 344980144
"trace buf hdr xtend " 2080
"KSXR receive buffers " 1061888
"kglsim Java timestamps " 131072
"VM OSD context " 0
"KCB Table Scan Buffer " 4194816
"knlp receive buffers " 0
"PLS chunk " 0
"knlu_init_btree:init " 0
"KEWS aggregation objs " 0
"DDE_USER_ACTION_DEF " 0
"keswxNotify:tabPlans " 131072
"EM_USER_ACTIVITY " 0
"KSXR large reply queue " 168296
"event-class map " 0
"KSQ event description " 0
"KSXP CONN Stats buffer " 728432
"KSXP CTX Stats buffer " 578128
"KSXP PORT Stats buffer " 142768
"kglsim alloc latches " 0
"kglsim used list arr " 0
"kglsim free obj list " 0
"KTCN global operators " 0
"KESTB existence bitvec " 131072
"KFD extent enqueue obj " 42792
"ksdhng: el wtr cache " 401280
"ksb cic process list " 0
"gcs shadows " 130592800
"value block f " 43832
"ksdhng: blkers cache " 72960
"FileOpenBlock " 255011680
"qmtb_init_xxta " 0
"sort segment handle " 54936
"latchnum to latch map " 0
"LISTEN ADDRESS ENTRY " 0
"vips_pkg_file " 0
"PX msg pool " 47109312 +++++ 当前PX msg pool已经分配了47M左右
。。。。。。
"Checkpoint queue " 116765184
"sim segment hits " 72960
"sim lru segments " 72960
"pesom.c:Global " 0
"peshm.c:Global " 0
"paralltp txn r " 22476896
"ASH buffers " 119537664
"ASM KFFD SO " 0
"statement queuing " 0
"v_actinc " 0
"message pool freequeue " 523240
"ADR_CONTROL " 0
"vshowincb " 0
"vproblem2 " 0
"PMON blockers " 0
"procs: ksunfy " 6408000
"sga listelement " 0
"primem_kfmdsg " 0
"agent name " 0
"SYSTEM PARAMETERS " 232944
"Online xxtafile Move sess" 0
"sched job queue " 0
"vproblem " 0
"object queue hash buckets" 8404992
"object queue hash table d" 229824
"obj stats allocation chun" 1290240
"qmnsf_heap " 0
"sim cache nbufs " 0
"qmu subheap " 53976
"MTTR advisory context " 0
"LGWR-network Server info " 34032
"LGWR debug module memory " 0
"logout storm management " 0
"log_simultaneous_copies " 49248
"sys event stats " 552960
"parameter handle " 4273688
"Parameter Handle " 0
"name-service recovery " 80776
"channel handle " 48360
"parameter blocks " 22016
"qmrcInitSGA:qmrcSGA " 0
"PARAMETER ENTRY " 0
"ASM map operations " 30552
"Security Class " 33280
"GCR " 0
"post/wait queues " 55872
"bloom filter " 0
"Auto tune undo info " 0
"pesldT03_Instance " 33848
"cp pool array " 0
"cp cmon array " 0
"UNDO INFO " 0
"Log Archive Config Contex" 0
"state objects " 107440104
"ArchLog Dest Array " 22784
"parallel kcbibr " 0
"archive_lag_target " 0
"poisoned memory " 32768
"name-service request " 0
"latch recovery structures" 0
"latches for protecting fs" 0
"latches for protecting ls" 0
"Label Cache Heap descrptr" 0
"cp connection " 0
"sched job slv " 0
"bt_subentry " 0
"Saved job ids " 0
"object level stat table " 0
"pso tbs: ksunfy " 780000
"dummy " 0
"qm_init_sga:qmdpsg " 0
"analytic workspace " 0
"sim trace buf " 0
"qm_init_sga:oidctx " 0
"Sort Segment " 16852160
"PRESENTATION ENTRY " 0
"cp srv array " 0
"recov_kgqbtctx " 26512
"dbkea sga " 0
"pesom.c:latch array " 0
"Banner Storage " 0
"qmps connections " 65280
"quiescing session " 0
"qm_init_uga:qmsg " 0
"enqueue " 0
"buffer handles " 5472000
"process group array " 69776
"DML lock " 7066304
"property service SO " 0
"broker globals " 0
"sga node map " 0
"prmtzdini tz region " 801416
"VIEW " 0
"savepoints " 0
"Monitor Modification Hash" 0
"RESUMABLE NAME " 0
"obj stats hash table " 0
"max allowable # log files" 506400
"OS proc request holder " 293424
"message pool context area" 22400
"media recovery state obje" 0
"db_files " 1783968
"base-kglhdusr " 1218016
"constraints " 0
"ASM scan context " 0
"PX server msg stats " 0
"PX server deq stats " 0
"cinfo_kfnsg " 0
"cco_subnode " 0
"cco_pubnode " 0
"KQR X PO " 50414728
"KQR L PO " 5977688
"parameter table block " 31158248
"KQR M SO " 192808
"KQR L SO " 128104
"KQR S SO " 90928
"KSFV SGA " 0
"KSIR SGA " 0
"ASM rollback operations " 0
"kccsgehtt " 0
"kglsgivl2 " 28160
"plugin xxtafile array " 36016
"plwxx:PLW_STR_NEW_RVAL " 0
"plwspv:PLW_STR_NEW_VAL " 0
"lm heartbeat " 0
"KGSK sga " 0
"BRANCH TABLE SEGMENTED AR" 105288
"ksv slave " 0
"RVWR post requested array" 0
"parameter value memory " 0
"RTA Bounxxry Info thread " 71808
"RTA read control file ind" 0
"k2q_lock " 4606648
"ASM extent pointer array " 318197080
。。。。。。。
"kglsim object batch " 338733696
"ktlbk state objects " 5417280
。。。。。
"kglsim heap " 197796864
"ksz parent " 204960
"kgnfs authp " 16464
"event statistics per sess" 29840640
"event statistics ptr arra" 36480
"event list to post commit" 0
"KFG SO child " 0
"KGKP randnum " 40000
Library Cache Dump

推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
淑富世廷789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有