Alter session set events ‘immediate tracename heapdump level n’;
对于不同level级别决定了将那些内存堆转储到跟踪文件
Level 1:pga汇总信息
Level 2:sga汇总信息
Level4:uga汇总信息
Level8:当前调用的汇总信息(cga)
Level16:用户调用的汇总信息(cga)
Level32:large pool的汇总信息(lga)
Level1025:pga详细信息
Level2050:sga详细信息
Level5000:uga详细信息
Level8200:当前调用的详细信息
Level16400:用户调用的详细信息
Level323800:large pool的详细信息
sys@ORCL>alter session set events'immediate trace name heapdump level 1';
会话已更改。
sys@ORCL>select value from v$diag_infowhere name like 'Default Trace File';
VALUE
----------------------------------------
d:\app\lenovo\diag\rdbms\orcl\orcl\trace
\orcl_ora_19420.trc
打开文件:
******************************************************
HEAP DUMP heap name="pgaheap" desc=0000000027B17700
extent sz=0x20c0 alt=216 het=32767 rec=0 flg=2opc=2
parent=0000000000000000 owner=0000000000000000nex=0000000000000000 xsz=0xfff0 heap=0000000000000000
fl2=0x60, nex=0000000000000000
EXTENT 0 addr=00000000235F0010
Chunk 0235f0020 sz= 1736 freeable "diag pga " ds=000000001E320640
Chunk 0235f06e8 sz= 2520 freeable "koh-kghu callh"
Chunk 0235f10c0 sz= 8256 freeable "PLS PGA hp " ds=000000002352E0A8
Chunk 0235f3100 sz= 2136 freeable "PLS PGA hp " ds=000000002352E0A8
Chunk 0235f3958 sz= 8360 recreate "PLS PGA hp " latch=0000000000000000
ds 02352e0a8sz= 18752 ct= 3
0235f10c0 sz= 8256
0235f3100 sz= 2136
Chunk 0235f5a00 sz= 4224 freeable "Alloc environm" ds=000000001E384018
Chunk 0235f6a80 sz= 38272 freeable "Fixed Uga "
EXTENT 1 addr=00000000235E0010
Chunk 0235e0020 sz= 35016 perm "perm " alo=13720
Chunk 0235e88e8 sz= 6768 free " "
Chunk 0235ea358 sz= 4224 freeable "diag pga " ds=000000001E320640
Chunk 0235eb3d8 sz= 4224 freeable "diag pga " ds=000000001E320640
Chunk 0235ec458 sz= 6112 freeable "diag pga " ds=000000001E320640
Chunk 0235edc38 sz= 6112 freeable "diag pga " ds=000000001E320640
Chunk 0235ef418 sz= 592 freeable "kopolal void "
Chunk 0235ef668 sz= 448 freeable "kopolal void "
Chunk 0235ef828 sz= 344 freeable "kopolal void "
Chunk 0235ef980 sz= 592 freeable "kopolal void "
Chunk 0235efbd0 sz= 1072 freeable "kopolal void "
EXTENT 2 addr=000000001E330280
Chunk 01e330290 sz= 4184 freeable "diag pga " ds=000000001E320640
Chunk 01e3312e8 sz= 4184 freeable "diag pga " ds=000000001E320640
EXTENT 3 addr=000000001E32E190
Chunk 01e32e1a0 sz= 4184 freeable "diag pga " ds=000000001E320640
Chunk 01e32f1f8 sz= 4184 freeable "diag pga " ds=000000001E320640
EXTENT 4 addr=000000001E32C0A0
Chunk 01e32c0b0 sz= 4184 freeable "diag pga " ds=000000001E320640
Chunk 01e32d108 sz= 4184 freeable "diag pga " ds=000000001E320640
EXTENT 5 addr=000000001E329AC8
Chunk 01e329ad8 sz= 9624 freeable "diag pga " ds=000000001E320640
……………….
进一步,可以将某个具体的数据存储结构转储出来,如以上的ds 02352e0a8 其空间使用的代销为sz=14036,首先对空间地址进行一下转换:
sys@ORCL>selectto_number('02352e0a8','xxxxxxxxxx') from dual;
TO_NUMBER('02352E0A8','XXXXXXXXXX')
-----------------------------------
592634024
再通过以下命令进行转储:
sys@ORCL>altersession set events 'immediate trace name heapdump_addr level 1,addr 592634024';
会话已更改。
找到文件:
sys@ORCL>select value from v$diag_info where name='Default Trace File';
VALUE
----------------------------------------
d:\app\lenovo\diag\rdbms\orcl\orcl\trace
\orcl_ora_15612.trc
打开文件:
******************************************************
HEAP DUMP heap name="PLS PGAhp" desc=000000002352E0A8
extent sz=0x840 alt=32767 het=32767 rec=0flg=2 opc=2
parent=0000000027B17700 owner=0000000000000000nex=0000000000000000 xsz=0x2028 heap=0000000000000000
fl2=0x20, nex=0000000000000000
EXTENT 0 addr=00000000235F10D8
Chunk 0235f10e8 sz= 8216 freeable "PL/SQL STACK "
EXTENT 1 addr=00000000235F3118
Chunk 0235f3128 sz= 2000 free " "
Chunk 0235f38f8 sz= 48 freeable "PLSQL Stackdes"
Chunk 0235f3928 sz= 48 freeable "PLSQL Stackdes"
EXTENT 2 addr=00000000235F3988
Chunk 0235f3998 sz= 80 perm "perm " alo=80
Chunk 0235f39e8 sz= 8216 freeable "PL/SQL STACK "
Total heap size = 18608
FREE LISTS:
Bucket 0 size=40
Chunk 0235f39b8 sz= 0 kghdsx
Bucket 1 size=48
Bucket 2 size=56
Bucket 3 size=88
Bucket 4 size=152
Bucket 5 size=280
Bucket 6 size=536
Bucket 7 size=1048
Chunk 0235f3128 sz= 2000 free " "
Total free space = 2000
UNPINNED RECREATABLE CHUNKS (lru first):
PERMANENT CHUNKS:
Chunk 0235f3998 sz= 80 perm "perm " alo=80
Permanent space = 80
******************************************************