Oracle Heap size XXK exceeds notification threshold (2048K) 解决方法 .

来源:互联网 发布:手机游戏数据修改器 编辑:程序博客网 时间:2024/04/29 09:29

数据库版本是10.2.0.1,使用EXPDP 导数据的时候,alert log 出现如下信息:

 

Wed Oct 26 12:14:02 2011

The value (30) of MAXTRANS parameterignored.

kupprdp: master process DM00 started withpid=73, OS id=4731

        to execute - SYS.KUPM$MCP.MAIN('SYS_EXPORT_SCHEMA_01', 'SYS','KUPC$C_1_20111026121403', 'KUPC$S_1_20111026121403', 0);

kupprdp: worker process DW01 started withworker id=1, pid=77, OS id=4774

        to execute - SYS.KUPW$WORKER.MAIN('SYS_EXPORT_SCHEMA_01', 'SYS');

 

Wed Oct 26 12:14:42 2011

Memory Notification:Library Cache Object loaded into SGA

Heap size 5525K exceedsnotification threshold (2048K)

 

KGL object name :SELECT /*+rule*/SYS_XMLGEN(VALUE(KU$), XMLFORMAT.createFormat2('TABLE_T', '7')), KU$.OBJ_NUM,KU$.ANC_OBJ.NAME ,KU$.ANC_OBJ.OWNER_NAME ,KU$.ANC_OBJ.TYPE_NAME,KU$.BASE_OBJ.NAME ,KU$.BASE_OBJ.OWNER_NAME ,KU$.BASE_OBJ.TYPE_NAME ,KU$.SPARE1,KU$.XMLSCHEMACOLS ,KU$.SCHEMA_OBJ.NAME ,KU$.SCHEMA_OBJ.NAME ,'TABLE',KU$.PROPERTY ,KU$.SCHEMA_OBJ.OWNER_NAME ,KU$.TS_NAME ,KU$.TRIGFLAG FROMSYS.KU$_FHTABLE_VIEW KU$ WHERE NOT (BITAND (KU$.PROPERTY,8192)=8192) AND  NOT BITAND(KU$.SCHEMA_OBJ.FLAGS,128)!=0AND   KU$.OBJ_NU

 

Trace 文件内容:

[xezf@localhost bdump]$ cat/home/oracle_app/admin/XEZF/bdump/xezf_dw01_4774.trc

/home/oracle_app/admin/XEZF/bdump/xezf_dw01_4774.trc

Oracle Database 10g Enterprise EditionRelease 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Miningoptions

ORACLE_HOME = /home/oracle_app

System name:    Linux

Node name:      localhost.localdomain

Release:        2.6.18-8.el5

Version:        #1 SMP Thu Mar 15 19:57:35 EDT 2007

Machine:        i686

Instance name: XEZF

Redo thread mounted by this instance: 1

Oracle process number: 77

Unix process pid: 4774, image:oracle@localhost.localdomain (DW01)

 

*** 2011-10-26 12:14:42.557

*** ACTION NAME:(SYS_EXPORT_SCHEMA_01)2011-10-26 12:14:42.529

*** MODULE NAME:(Data Pump Worker)2011-10-26 12:14:42.529

*** SERVICE NAME:(SYS$USERS) 2011-10-2612:14:42.529

*** SESSION ID:(106.8016) 2011-10-2612:14:42.529

Memory Notification: Library Cache Objectloaded into SGA

Heap size 5525K exceeds notificationthreshold (2048K)

LIBRARY OBJECT HANDLE: handle=902ccc68mutex=0x902ccd1c(0)

name=

SELECT /*+rule*/ SYS_XMLGEN(VALUE(KU$), XMLFORMAT.createFormat2('TABLE_T','7')), KU$.OBJ_NUM ,KU$.ANC_OBJ.NAME ,KU$.ANC_OBJ.OWNER_NAME,KU$.ANC_OBJ.TYPE_NAME ,KU$.BASE_OBJ.NAME ,KU$.BASE_OBJ.OWNER_NAME,KU$.BASE_OBJ.TYPE_NAME ,KU$.SPARE1 ,KU$.XMLSCHEMACOLS ,KU$.SCHEMA_OBJ.NAME,KU$.SCHEMA_OBJ.NAME ,'TABLE' ,KU$.PROPERTY ,KU$.SCHEMA_OBJ.OWNER_NAME,KU$.TS_NAME ,KU$.TRIGFLAG FROM SYS.KU$_FHTABLE_VIEW KU$ WHERE NOT (BITAND(KU$.PROPERTY,8192)=8192) AND  NOTBITAND(KU$.SCHEMA_OBJ.FLAGS,128)!=0 AND  KU$.OBJ_NU

hash=cee7e1d7e94b0fa1690a65161375b4d6 timestamp=10-26-201112:14:37

namespace=CRSRflags=RON/KGHP/TIM/KEP/PN0/DBN/[10010044]

kkkk-dddd-llll=0001-0001-0001 lock=N pin=0latch#=5 hpc=0002 hlc=0002

lwt=0x902cccc4[0x902cccc4,0x902cccc4]ltm=0x902ccccc[0x902ccccc,0x902ccccc]

pwt=0x902ccca8[0x902ccca8,0x902ccca8]ptm=0x902cccb0[0x902cccb0,0x902cccb0]

ref=0x902ccce4[0x902ccce4,0x902ccce4]lnd=0x902cccf0[0x962477a4,0x9681c18c]

 LIBRARY OBJECT: object=9487dd60

 type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0

 CHILDREN: size=16

 child#    table reference   handle

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

      0 9414ed1c  9414e9d0 90566b6c

 DATA BLOCKS:

 data#     heap  pointer   status pins change whr alloc(K) size(K)

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

      0 9d323b60 9487ddf8 I/P/A/-/-    0 NONE  00      0.67     1.05

LIBRARY OBJECT HANDLE: handle=90566b6cmutex=0x90566c20(0)

namespace=CRSRflags=RON/KGHP/PN0/[10010000]

kkkk-dddd-llll=0000-0001-0000 lock=N pin=Xlatch#=5 hpc=0002 hlc=0002

lwt=0x90566bc8[0x90566bc8,0x90566bc8]ltm=0x90566bd0[0x90566bd0,0x90566bd0]

pwt=0x90566bac[0x90566bac,0x90566bac]ptm=0x90566bb4[0x90566bb4,0x90566bb4]

ref=0x90566be8[0x9414e9d0,0x9414e9d0]lnd=0x90566bf4[0x90566bf4,0x90566bf4]

 LIBRARY OBJECT: object=94fc1c00

 type=CRSR flags=EXS[0001] pflags=NST[0001] status=VALD load=0

 DEPENDENCIES: count=101 size=112

 dependency#    tablereference   handle position flags

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

           0 94fc1f70  9a943858 902ccb10      386 DEP[01]

           1 94fc1f70  9a94388c 9dadaffc      229 DEP[01]

           2 94fc1f70  9a9438c0 9dae1bac       80 DEP[01]

 ....

 

Oracle MOS 上[ID330239.1] 对此问题有说明:

Memory Notification: Library Cache Object Loaded Into Sga [ID 330239.1]

 

 

导致这个提示的原因:

These are warning messages that should not cause the program responsible for these errorsto fail.  They appear as a result of new event messaging mechanism andmemory manager in 10g Release 2.

The meaning is that the process is just spending a lot oftime in finding free memory extents during an allocate as the memory may beheavily fragmented.  Fragmentation in memory isimpossible to eliminate completely, however, continued messages of largeallocations in memory indicate there are tuning opportunities on the application.  

The messages donot imply that an ORA-4031 is about to happen. 

--这个提示意味着在内存中有严重的碎片时,进程需要用更多的时间来查找空余的内存。

 

解决方法:

In 10g we have anew undocumented parameter that sets the KGL heap size warningthreshold.   This parameter was not present in 10gR1.  Warningsare written if heap size exceeds this threshold.
   

Set _kgl_large_heap_warning_threshold  to a reasonable high value or zero toprevent these warning messages. Value needs to be set in bytes. 



If you want to set this to 8192 (8192 * 1024) and are using an spfile: 

(logged in as "/ as sysdba")

SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ; 


SQL> shutdown immediate 

SQL> startup 


If using an "old-style" init parameter, 

Edit the init parameter file and add 
_kgl_large_heap_warning_threshold=8388608

 

NOTE: 

The default threshold in 10.2.0.1 is 2M.  So these messages could show up frequently in some applicationenvironments.

In 10.2.0.2,  the threshold was increased to 50MBafter regression tests, so this should be a reasonable andrecommended value. 

 

我执行expdp的库是10.2.0.1的版本,所以正好和上面的说明一致。 解决方法一是修改参数参数,而是升级数据库版本。

0 0
原创粉丝点击