|
原帖由 viadeazhu 于 2009-6-20 23:08 发表 ![]()
hi HY老大,那天来上海和你合影了:)可能你不知道谁是我:)
...
HEAP DUMP heap name="top uga heap" desc=1066a87e8
...
Chunk ffffffff7b840068 sz= 65432 freeable "session heap " ds=ffffffff7b826ac8EXTENT 1 addr=ffffffff7b830008
...
至于为什么大家认为是"Hex address of the Buffer Header",我想应该是看到了这篇对x$bh的column解释吧:
http://www.o r a c l e fans.cn/forum/showtopic.jsp?rootid=801
(ps:去掉“oracle”之间的空格,不然他说我是违规广告。。。)
I got the picture Jack sent me. Let me know who is you in it. It's a shame I didn't arrange more time to meet with my friends, old or new.
Since the heap dump has the subheap descriptor (ds ffffffff7b826ac8), maybe you can drill down to get more info by dumping that, something like
alter session set events 'immediate trace name heapdump_addr level 2 addr 0xffffffff7b826ac8'.
The quoted article on 违规广告.cn seems to be relevant to 8i only. I happen to have an 8.1.7.0 database around. I checked the addr column for buffers of a given table. The addr values do NOT change, even after I checkpoint. (On higher versions, 9.2.0.8 and up, checkpoint or flushing buffer cache will change addr.) Since an 8i database is hard to find, let me post my findings:
SQL> select ADDR,INDX,HLADDR,FLAG,TS#,FILE#,DBABLK,CLASS,BA,state from sys.x$bh where OBJ = 285756;
ADDR INDX HLADDR FLAG TS# FILE# DBABLK CLASS BA STATE
-------- ---------- -------- ---------- ---------- ---------- ---------- ---------- -------- ----------
4054E190 26497 406A76C4 35659776 26 21 9 4 55614000 1
4056F668 27500 406A7940 35659776 26 21 10 1 55DEA000 1
Level 1 buffers dump trace:
BH #26497 (0x4054e190) file#: 21 rdba: 0x05400009 (21/9) class 4 ba: 0x55614000
set: 2, dbwrid: 0
hash: [406a792c,406a792c], lru: [40613f50,4049ddb8]
LRU flags:
ckptq: [NULL] fileq: [NULL]
st: XCURRENT, md: NULL, rsop: 0x0, tch: 2
flags: gotten_in_current_mode block_written_once redo_since_read
L:[0x0.0.0] H:[0x0.0.0] R:[0x0.0.0]
BH #27500 (0x4056f668) file#: 21 rdba: 0x0540000a (21/10) class 1 ba: 0x55dea000
set: 2, dbwrid: 0
hash: [406a7ba8,406a7ba8], lru: [405286a0,4049aa30]
LRU flags:
ckptq: [NULL] fileq: [NULL]
st: XCURRENT, md: NULL, rsop: 0x0, tch: 1
flags: gotten_in_current_mode block_written_once redo_since_read
L:[0x0.0.0] H:[0x0.0.0] R:[0x0.0.0]
Note the x$bh.indx value matches the number after # in the trace, and addr value matches that in the parentheses. From 9.2.0.8 on, it's no longer the case.
Yong Huang |
|