转自eagle 的blog, 原文链接地址如下:http://www.dbafan.com/blog/?p=495
11gR2 还没怎么研究,转贴过来,以防以后出现这个问题。
---------------- -Begin ------------------
在11.2.0.2的数据库上,我们遇到了oracle 11g的Bug 10082277 Excessive allocationin PCUR or KGLH0 heap of “kkscsAddChildNo” (ORA-4031)
Bug 10082277 Excessive allocation in PCUR or KGLH0 heap of “kkscsAddChildNo”(ORA-4031)
This note gives a brief overview of bug 10082277.
The content was last updated on: 26-AUG-2011
Click here for details of each of the sections below.
Affects:
Range of versions believed to be affected Versions BELOW 12.1
Versions confirmed as being affected
11.2.0.2
11.2.0.1
Platformsaffected Generic (all / most platforms affected)
Fixed:
This issue isfixed in
12.1 (Future Release)
11.2.0.3 (Future Patch Set)
11.2.0.2.3 Patch Set Update
11.2.0.2 Bundle Patch 4 for Exadata Database
11.2.0.2 Patch 2 on Windows Platforms
11.2.0.1 Patch 11 on Windows Platforms
Description
Under certain circumstances the “perm” space in PCURsubheaps (11.2.0.1)
or KGLH0 subheaps (11.2.0.2) for cursors in the shared pool may continue
to grow over time with continual additions of memory of the type
“kkscsAddChildNo”.
Over time this can use excessive shared pool memory , evenleading
to ORA-4031 errors.
Rediscovery Notes:
A heapdump of the SGA will show one or more very large
subheaps with a name of the form “PCUR^xxxx” or “KGLH0^xxxx”.
Within this subheap there is lots of “perm” space allocated.
If CPRM tracing is enable (event 10235 level 65536) then
the subheap dump shows the perm space as due to “kkscsAddChildNo”
allocations of memory.
Workaround
This issue requires that there is a lack of sharing of the
parent cursor. Hence a workaround, where possible, is to
address the reason for not sharing the parent cursor.
(eg: Check V$SQL_SHARED_CURSOR for why the parent is not
being shared).
该问题在我们的系统上表现为
1. 单个SQL占用了大量的shared pool memory, 这个例子中单个SQL就占用了1.7GB的sharedpool memory
selectVERSION_COUNT,SHARABLE_MEMfromv$sqlareawhere
hash_value=2038009379;
VERSION_COUNTSHARABLE_MEM
------------- ------------
96 1888704961
而在10.2.0.4的数据库上,同样的SQL只占用了4M左右大小的内存
selectVERSION_COUNT,SHARABLE_MEMfromv$sqlareawhere
hash_value=2038009379;
VERSION_COUNTSHARABLE_MEM
------------- ------------
214 4216097
2. 大部分的内存都被parent cursor (cursor id为65535)占用了
通过Tanel的脚本curheaps.sql可以查看各个child cursor的大小
SQL> @curheaps203800937965535
old20: KGLNAHSHin(&1)
new20: KGLNAHSHin(2038009379)
old21:and KGLOBT09like('&2')
new21:and KGLOBT09like('65535')
KGLNAHSHKGLHDPAR CHILD# KGLHDADR
KGLOBHD0 SIZE0 SIZE1 SIZE2 SIZE3
---------- -------------------------- ---------------- ----------------
------------------------------ -------- --------
KGLOBHD4 SIZE4 SIZE5KGLOBHD6 SIZE6 SIZE7
STATUS
---------------- ---------------- ---------------- -------- --------
----------
2038009379 0000000F3BC53E78 65535 0000000F3BC53E78
0000000F5BF1E648 *1883443712 *0 0 0
00 0 000 0
0 1
old10: KSMCHDS=hextoraw('&v_curheaps_kglobhd0')
new10: KSMCHDS=hextoraw('0000000F5BF1E648')
HEAPCLASS ALLOC_COMMENT BYTES CHUNKS
----- ------------------------ ---------- ----------
HEAP0perm permanentmemor *1898642464 *474659
HEAP0free freememory 26531224 473772
HEAP0freeablkksfbc:hash1 4872 96
HEAP0freeablkgltbtab 912 6
old10: KSMCHDS=hextoraw('&v_curheaps_kglobhd4')
new10: KSMCHDS=hextoraw('00')
norowsselected
old10: KSMCHDS=hextoraw('&v_curheaps_kglobhd6')
new10: KSMCHDS=hextoraw('00')
norowsselected
另外该问题只发生在client的jdbc driver升级到11g以后,jdbcdriver为10g的时候没有这个问题,估计和sharedcursor sharing有关系。
SQL的 parent cursor不断增长一方面会使得shared pool的内存耗尽,另外如果发生hard parse耗时非常严重,可能会导致大量的和parse相关的等待时间,例如“cursor: mutex S”。
Oracle有相关的patch可以下载,打上patch后问题解决。
curheaps.sql
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Email: dvd.dba@gmail.com
DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群:83829929(满) DBA5群: 142216823(满)
DBA6 群:158654907(满) DBA7 群:69087192(满)DBA8 群:172855474
DBA 超级群2:151508914 DBA9群:102954821 聊天 群:40132017(满)
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
分享到:
相关推荐
11. **In essence (adv.)** – 本质上 - 示例:In essence, all life forms need water to survive. 12. **In bulk (adv.)** – 大批,散装 - 示例:Buying food in bulk can save money. ##### 例题解析 1. **...
Create fast front-end applications and increase the performance of your existing projects with Vue.js integration About This Book Learn about computed properties, components, filters, routing, ES6, ...
Detection of Excessive Interrupt Disablement - a new feature which can detect a period of excessive interrupt disablement on a CPU, and create an error log record to report it. This allows you to know...
- fixed bug in ODF export with excessive text:p inside table:covered-table-cell - fixed bug in ODF export with language styles - fixed bug in ODF export with spaces and tab symbols - fixed bug in ODF ...
• Table of Contents • Index • Reviews • Reader Reviews • Errata • Academic Python Cookbook, 2nd Edition By David Ascher, Alex Martelli, Anna Ravenscroft Publisher : O'Reilly Pub Date...
To make use of either more or less strict isolation levels in applications, locking can be customized for an entire session by setting the isolation level of the session with the SET TRANSACTION ...
Motion waste involves the unnecessary movement of people or equipment, such as reaching, bending, or walking. By redesigning workstations and optimizing ergonomic layouts, companies can minimize ...
is threatened by eutrophication due to excessive nutrient input and siltation due to sediment loads. Recently, the water authorities in Taiwan have made considerable efforts to devise strategies ...
A stack is an area of memory in which program procedure or function call addresses and parameters are temporarily stored. In Process To run in the same address space. In-process servers are loaded ...
1. (优点): Improve the flexibility of learning in terms of space, time, choice of content or teaching resources. 2. (优点): Make life-long study possible. 3. Face-to-face contact can never be replaced...
David Strayer, a psychology professor at the University of Utah, highlights the issue that the average American spends roughly 10 hours daily in front of computers or other electronic devices and ...
The extent to which nuclear energy can be a feasible energy option has re-emerged as a subject of widespread debate following the Fukushima accident in Japan. However, relatively little is known about...
zer machine is used for the first time, it's recommended to change the oil in the pump after 100 hours of operation. Use clean diesel oil for the initial fill, then switch to hydraulic oil of ...
ance of a vehicle is primarily defined by its agility, stability, and predictability. Dampers play a crucial role in these aspects. They control the suspension's response to various inputs, such as ...
Moreover, overconsumption of stationery, excessive use of paper for printing unnecessary materials, and energy wastage through leaving lights and air conditioners on in empty classrooms are other ...
the grid under: 1) excessive dc-link voltage 2) excessive ac currents and 3) loss of grid-voltage synchronization. In this paper, the control of single- and two-stage grid-connected VSIs in ...
Microsoft SQL Server has become an eminent relational database management system (RDBMS) in the marketplace. The SQL Server engine has come a long way from being just another RDBMS; it’s an end-to...
1. **Choose the Right Level of Detail:** Select the appropriate level of detail for each log message (e.g., DEBUG, INFO, WARN, ERROR, FATAL). This helps in filtering out unnecessary information during...