1.基础内容:
ALTER SESSION SET EVENTS 'immediate trace name buffers level n';
n取值意义:
1 只转储buffer header.
2 在level 1的基础上再转储数据块头。
3 在level 2的基础上再转储数据块内容。
4 转储buffer header和hash chain.
5 在level 1的基础上再转储数据块头和hash chain.
6 在level 2的基础上再转储数据块内容和hash chain.
8 转储buffer header和hash chain以及users/waiters链表。
9 在level 1的基础上再转储数据块头、hash chain以及users/waiters链表。
10 在level 2的基础上再转储数据块内容、hash chain以及users/waiters链表
2.刷新buffer cache
alter system flush buffer_cache;
3.导出数据块的内容
#确定表所对应的object_id
select object_id from dba_objects where object_name='T01';
object_id
-------------
51780
4.将数据读入到buffer cache
select * from t01;
5.dump出buffer cache
ALTER SESSION SET EVENTS 'immediate trace name buffers level 3';
当前的trace 文件位置:
> oradebug setmypid;.
> oradebug tracefile_name;
6.通过object_id 在dump文件中寻找表对应的块
BH (000007FF087EECC8) file#: 1 rdba: 0x0040ed92 (1/60818) class: 1 ba: 000007FF08636000
set: 3 blksize: 8192 bsi: 0 set-flg: 2 pwbcnt: 0
dbwrid: 0 obj: 51780 objn: 51780 tsn: 0 afn: 1
hash: [9bf53d8,feee108] lru: [97e7a88,57f7108]
ckptq: [NULL] fileq: [NULL] objq: [97e7af8,e3d6dd8]
st: XCURRENT md: NULL tch: 4
flags: only_sequential_access
LRBA: [0x0.0.0] HSCN: [0xffff.ffffffff] HSUB: [65535]
buffer tsn: 0 rdba: 0x0040ed92 (1/60818)
scn: 0x0000.000a213e seq: 0x04 flg: 0x06 tail: 0x213e0604
frmt: 0x02 chkval: 0xf9a7 type: 0x06=trans data
Hex dump of block: st=0, typ_found=1
.......
data_block_dump,data header at 0x44d005c
===============
tsiz: 0x1fa0
hsiz: 0x1a
pbl: 0x044d005c
bdba: 0x0040ed92
76543210
flag=--------
ntab=1
nrow=4
frre=3
fsbo=0x1a
fseo=0x1e42
avsp=0x1f09
tosp=0x1f09
0xe:pti[0] nrow=4 offs=0
0x12:pri[0] offs=0x1eb2
0x14:pri[1] offs=0x1ea6
0x16:pri[2] offs=0x1e42
0x18:pri[3] sfll=-1
block_row_dump:
tab 0, row 0, @0x1eb2
tl: 13 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 02
col 1: [ 6] 6f 72 61 63 6c 65
tab 0, row 1, @0x1ea6
tl: 12 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 02
col 1: [ 5] 6d 79 73 71 6c
tab 0, row 2, @0x1e42
tl: 100 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 02
col 1: [93]
6d 79 73 71 6c 6f 72 61 63 6c 65 6d 79 73 71 6c 6f 72 61 63 6c 65 6d 79 73
71 6c 6f 72 61 63 6c 65 6d 79 73 71 6c 6f 72 61 63 6c 65 6d 79 73 71 6c 6f
72 61 63 6c 65 6d 79 73 71 6c 6f 72 61 63 6c 65 6d 79 73 71 6c 6f 72 61 63
6c 65 6d 79 73 71 6c 6f 72 61 63 6c 65 6d 79 73 71 6c
相关字段简要说明:
|-------obj:51780 表示object_id
|
|-------class表示该buffer header所对应的数据块的类型,具体的值与含义的对应为:
| 1=data block;
| 2=sort block;
| 3=save undo block;
| 4=segment header;
| 5=save undo header;
| 6=free list;
| 7=extent map;
| 8=1st level bmb;
| 9=2nd level bmb;
| 10=3rd level bmb;
| 11=bitmap block;
| 12=bitmap index block;
| 13=unused;
| 14=undo header;
| 15=undo block。
|
|-------rdba: 0x0040ed92 (1/60818)表示该对象所对应的数据块在磁盘数据文件上的地址为 1号文件,60818块
| #确定表所在文件及数据块
| select
| rowid,
| dbms_rowid.rowid_relative_fno(rowid) REL_FNO,--File id
| dbms_rowid.rowid_block_number(rowid) BLOCK_NO,--Block number
| dbms_rowid.rowid_row_number(rowid) ROW_NO,
| id
| from t01;
|
| ROWID REL_FNO BLOCK_NO ROW_NO ID
| ------------------ ---------- ---------- ---------- ----------
| AAAMpEAABAAAO2SAAA 1 60818 0 0
| AAAMpEAABAAAO2SAAB 1 60818 1 1
| AAAMpEAABAAAO2SAAC 1 60818 2 1
参考blog:http://blog.csdn.net/orion61/article/details/8515340