--ASSM与三级位图结构
ASSM的整体结构是3层位图块 + 数据库,即共4层的树状结构。
第一层位图块称为L3块,一个L3块中可以存放多个L2块的地址,一个L2块中存放多个L1的地址,1个L1块中存放多个数据块地址。
ASSM的整体结构是3层位图块 + 数据库,即共4层的树状结构。
第一层位图块称为L3块,一个L3块中可以存放多个L2块的地址,一个L2块中存放多个L1的地址,1个L1块中存放多个数据块地址。
第一个L3块一般是段头。
--实验测试
EODA@PROD1> create tablespace tbs1 datafile '/u01/app/oracle/oradata/PROD1/tbs1.dbf' size 50m; --创建干净表空间
Tablespace created.
EODA@PROD1> create table t1 (id int) tablespace tbs1; --创建一个表并插入数据
Table created.
EODA@PROD1> insert into t1 values ('100');
1 row created.
EODA@PROD1> commit;
Commit complete.
EODA@PROD1> select extent_id, file_id, block_id, blocks from dba_extents where segment_name='T1'; --表于第128个块开始
EXTENT_ID FILE_ID BLOCK_ID BLOCKS
---------- ---------- ---------- ----------
0 16 128 8
EODA@PROD1> select header_block, header_file from dba_segments where segment_name='T1' and OWNER='EODA'; --查找段头发现是在第130个块
HEADER_BLOCK HEADER_FILE
------------ -----------
130 16
SYS@PROD1> alter system dump datafile 16 block min 128 block max 130; --dump出这个块的信息
System altered.
SYS@PROD1> oradebug setmypid
Statement processed.
SYS@PROD1> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_26852.trc
[oracle@ocm1 ~]$ cat /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_26852.trc
Trace file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_26852.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1
System name: Linux
Node name: ocm1
Release: 2.6.18-164.el5PAE
Version: #1 SMP Thu Sep 3 02:28:20 EDT 2009
Machine: i686
VM name: VMWare Version: 6
Instance name: PROD1
Redo thread mounted by this instance: 1
Oracle process number: 30
Unix process pid: 26852, image: oracle@ocm1 (TNS V1-V3)
*** 2016-11-28 00:43:01.085
*** SESSION ID:(60.489) 2016-11-28 00:43:01.085
*** CLIENT ID:() 2016-11-28 00:43:01.085
*** SERVICE NAME:(SYS$USERS) 2016-11-28 00:43:01.085
*** MODULE NAME:(sqlplus@ocm1 (TNS V1-V3)) 2016-11-28 00:43:01.085
*** ACTION NAME:() 2016-11-28 00:43:01.085
Start dump data blocks tsn: 20 file#:16 minblk 128 maxblk 130
Block dump from cache:
Dump of buffer cache at level 4 for tsn=20 rdba=67108992
BH (0x307f6184) file#: 16 rdba: 0x04000080 (16/128) class: 8 ba: 0x306fc000 ##第128个block
set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,25
dbwrid: 0 obj: 86497 objn: 86497 tsn: 20 afn: 16 hint: f
hash: [0x37fe9424,0x2e3eda2c] lru: [0x307f5fac,0x30be80ec]
ckptq: [NULL] fileq: [NULL] objq: [0x4797e170,0x307f5fc4] objaq: [0x307f5fcc,0x30be82bc]
st: XCURRENT md: NULL fpin: 'ktspfwh6: ktspffbmb' tch: 1
flags: block_written_once redo_since_read
LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [1]
Block dump from disk:
buffer tsn: 20 rdba: 0x04000080 (16/128)
scn: 0x0001.00427c30 seq: 0x02 flg: 0x04 tail: 0x7c302002
frmt: 0x02 chkval: 0x927c type: 0x20=FIRST LEVEL BITMAP BLOCK ##FIRST LEVEL BITMAP BLOCK即L1块
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x00BF3600 to 0x00BF5600
BF3600 0000A220 04000080 00427C30 04020001 [ .......0|B.....]
BF3610 0000927C 00000000 00000000 00000000 [|...............]
BF3620 00000000 00000000 00000000 00000000 [................]
Repeat 1 times
BF3640 00000000 00000000 00000000 00000004 [................]
BF3650 FFFFFFFF 00000000 00000003 00000008 [................]
BF3660 00010001 00000000 00000000 00000000 [................]
BF3670 00000005 00000003 583B0A71 583B0A71 [........q.;Xq.;X]
BF3680 00000000 00000000 00000000 00000000 [................]
BF3690 04000081 00000000 00000000 00000008 [................]
BF36A0 00000008 04000088 00000000 00000000 [................]
BF36B0 00000000 00000005 00000000 00000001 [................]
BF36C0 000151E1 000C05BB 00000000 04000080 [.Q..............]
BF36D0 00000008 00000000 00000000 00000000 [................]
BF36E0 00000000 00000000 00000000 00000000 [................]
Repeat 9 times
BF3780 00000000 00000000 00000000 55551511 [..............UU]
BF3790 00000000 00000000 00000000 00000000 [................]
Repeat 485 times
BF55F0 00000000 00000000 00000000 7C302002 [............. 0|]
Dump of First Level Bitmap Block
--------------------------------
nbits : 4 nranges: 1 parent dba: 0x04000081 poffset: 0 ## parent dba: 0x04000081 父块地址指向block 129
unformatted: 0 total: 8 first useful block: 3
owning instance : 1
instance ownership changed at 11/28/2016 00:31:45
Last successful Search 11/28/2016 00:31:45
Freeness Status: nf1 0 nf2 0 nf3 0 nf4 5
Extent Map Block Offset: 4294967295
First free datablock : 3
Bitmap block lock opcode 0
Locker xid: : 0x0000.000.00000000
Dealloc scn: 787899.0
Flag: 0x00000001 (-/-/-/-/-/HWM)
Inc #: 0 Objd: 86497
HWM Flag: HWM Set
Highwater:: 0x04000088 ext#: 0 blk#: 8 ext size: 8
#blocks in seg. hdr's freelists: 0
#blocks below: 5
mapblk 0x00000000 offset: 0
--------------------------------------------------------
DBA Ranges :
--------------------------------------------------------
0x04000080 Length: 8 Offset: 0
0:Metadata 1:Metadata 2:Metadata 3:75-100% free
4:75-100% free 5:75-100% free 6:75-100% free 7:75-100% free
--------------------------------------------------------
Block dump from cache:
Dump of buffer cache at level 4 for tsn=20 rdba=67108993
BH (0x307f5efc) file#: 16 rdba: 0x04000081 (16/129) class: 9 ba: 0x306f6000 ##第129个block,rdba: 0x04000081
set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,25
dbwrid: 0 obj: 86497 objn: 86497 tsn: 20 afn: 16 hint: f
hash: [0x4a607370,0x4a607370] lru: [0x307f5b74,0x307f6234]
ckptq: [NULL] fileq: [NULL] objq: [0x307f624c,0x307f5b8c] objaq: [0x307f5b94,0x307f6254]
st: XCURRENT md: NULL fpin: 'ktspswh4: ktspfsbmb' tch: 1
flags: block_written_once redo_since_read
LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [1]
Block dump from disk:
buffer tsn: 20 rdba: 0x04000081 (16/129)
scn: 0x0001.00427c27 seq: 0x02 flg: 0x04 tail: 0x7c272102
frmt: 0x02 chkval: 0xd204 type: 0x21=SECOND LEVEL BITMAP BLOCK ##SECOND LEVEL BITMAP BLOCK即L2块
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x00BF3600 to 0x00BF5600
BF3600 0000A221 04000081 00427C27 04020001 [!.......'|B.....]
BF3610 0000D204 00000000 00000000 00000000 [................]
BF3620 00000000 00000000 00000000 00000000 [................]
Repeat 1 times
BF3640 00000000 00000000 00000000 04000082 [................]
BF3650 00000001 00000001 00000000 00000000 [................]
BF3660 00000000 00000000 000151E1 00000001 [.........Q......]
BF3670 00000000 04000080 00010005 00000000 [................]
BF3680 00000000 00000000 00000000 00000000 [................]
Repeat 502 times
BF55F0 00000000 00000000 00000000 7C272102 [.............!'|]
Dump of Second Level Bitmap Block
number: 1 nfree: 1 ffree: 0 pdba: 0x04000082 ## pdba: 0x04000082 指向第130个block
Inc #: 0 Objd: 86497
opcode:0
xid:
L1 Ranges :
--------------------------------------------------------
0x04000080 Free: 5 Inst: 1
--------------------------------------------------------
Block dump from cache:
Dump of buffer cache at level 4 for tsn=20 rdba=67108994
BH (0x307f5ac4) file#: 16 rdba: 0x04000082 (16/130) class: 4 ba: 0x306ec000 ##第130个block rdba: 0x04000082
set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,25
dbwrid: 0 obj: 86497 objn: 86497 tsn: 20 afn: 16 hint: f
hash: [0x4a576720,0x4a576720] lru: [0x307f372c,0x307f5fac]
ckptq: [NULL] fileq: [NULL] objq: [0x307f5fc4,0x30be82b4] objaq: [0x4797e168,0x307f5fcc]
st: XCURRENT md: NULL fpin: 'ktswh03: ktscts' tch: 2
flags: block_written_once redo_since_read
LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [1]
Block dump from disk:
buffer tsn: 20 rdba: 0x04000082 (16/130)
scn: 0x0001.00427c30 seq: 0x03 flg: 0x04 tail: 0x7c302303
frmt: 0x02 chkval: 0xfa28 type: 0x23=PAGETABLE SEGMENT HEADER ##PAGETABLE SEGMENT HEADER即段头,就是L3块
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x00BF3600 to 0x00BF5600
BF3600 0000A223 04000082 00427C30 04030001 [#.......0|B.....]
BF3610 0000FA28 00000000 00000000 00000000 [(...............]
BF3620 00000000 00000001 00000008 00000A9C [................]
BF3630 00000000 00000008 00000008 04000088 [................]
BF3640 00000000 00000000 00000000 00000005 [................]
BF3650 00000000 00000000 00000000 00000000 [................]
BF3660 00000008 00000008 04000088 00000000 [................]
BF3670 00000000 00000000 00000005 04000080 [................]
BF3680 04000080 00000000 00000000 00000000 [................]
BF3690 00000000 00000000 00000000 00000000 [................]
Repeat 3 times
BF36D0 00000001 00002000 00000000 00001434 [..... ......4...]
BF36E0 00000000 04000081 00000001 04000080 [................]
BF36F0 04000081 00000000 00000000 00000000 [................]
BF3700 00000000 00000000 00000001 00000000 [................]
BF3710 000151E1 10000000 04000080 00000008 [.Q..............]
BF3720 00000000 00000000 00000000 00000000 [................]
Repeat 152 times
BF40B0 04000080 04000083 00000000 00000000 [................]
BF40C0 00000000 00000000 00000000 00000000 [................]
Repeat 151 times
BF4A40 00000000 00000000 04000081 00000000 [................]
BF4A50 00000000 00000000 00000000 00000000 [................]
Repeat 185 times
BF55F0 00000000 00000000 00000000 7C302303 [.............#0|]
Extent Control Header
-----------------------------------------------------------------
Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 8
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x04000088 ext#: 0 blk#: 8 ext size: 8
#blocks in seg. hdr's freelists: 0
#blocks below: 5
mapblk 0x00000000 offset: 0
Unlocked
--------------------------------------------------------
Low HighWater Mark :
Highwater:: 0x04000088 ext#: 0 blk#: 8 ext size: 8
#blocks in seg. hdr's freelists: 0
#blocks below: 5
mapblk 0x00000000 offset: 0
Level 1 BMB for High HWM block: 0x04000080
Level 1 BMB for Low HWM block: 0x04000080
--------------------------------------------------------
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x04000081
Last Level 1 BMB: 0x04000080
Last Level II BMB: 0x04000081
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 1 obj#: 86497 flag: 0x10000000
Inc # 0
Extent Map
-----------------------------------------------------------------
0x04000080 length: 8
Auxillary Map
--------------------------------------------------------
Extent 0 : L1 dba: 0x04000080 Data dba: 0x04000083
--------------------------------------------------------
Second Level Bitmap block DBAs
--------------------------------------------------------
DBA 1: 0x04000081
End dump data blocks tsn: 20 file#: 16 minblk 128 maxblk 130