返回小栈
深入解析Oracle ASSM结构之Level 1 Bitmap Block
orastar2020-03-23 14:20:42

一、概念介绍



L1 BMB中存储了一组连续的同一个extent中的数据块空间使用信息,L1内部结构由Cache Header、Header Control及DBA range三层结构组成,Oracle数据块类型代码为“type: 0x20=FIRST LEVEL BITMAPBLOCK”,和L3、L2相同bbed工具同样不支持查询L1的物理结构,本节主要使用C语言解析L1物理结构。

Level 1Bitmap Block特点:

  • L1中存储了一组连续的同一个extent中的数据块空间使用信息。

  • 更高性能的空间重组及extent移动。

  • 每个L1可以指向最小16个到最多1024个数据块。

  • 更高性能的segment重组和dml支持。

 

 

 

 

 

二、dump块结构解析



altersession set tracefile_identifier='orastar_bmb1';

oradebugsetmypid

altersystem dump datafile 5 block 7704;

oradebugclose_trace

oradebugtracefile_name

 

CacheHeader

type: 0x20=FIRST LEVEL BITMAP BLOCK该数据块为L1 BMB

HeaderControl

  • nranges:指向数据块extent的个数。

  • parent dba:你节点L2 dba地址

  • unformatted:未格式化数据块的数量

  • total:总数据块的数量

  • first useful block: 当前inserts操作的数据块offset

  • owning instance:关联实例

  • Freeness Status:统计块使用状态

nf1 represents 0–25% free block count,
nf2 represents 25 – 50% free block count,

nf3 represents 50–75% free block count and

nf4 represents 75–100% free block count

  • first free datablock:下次insert操作的数据块offset

  • objd: 表示对象object_id


 


 

 

DBArange

  • extent开始地址

  • 区大小block数

  • 对L1 地址的offset

 

 

三、二进制结构

 


Cache Header


 

 

Header Control


 

DBA range


 

四、数据块解析



由于bbed不支持L1数据块的物理结构解析,报错信息如下所示,

BBED>set dba 5,7704

       DBA               0x01401e18(20979224 5,7704)

 

BBED>map /v

 File: /oradata/epmsn/hsql01.dbf (5)

 Block: 7704                                 Dba:0x01401e18

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

BBED-00400:invalid blocktype (32)

 

使用C语言结构体解析该数据块结构,解析后的物理结构如下所示,


 


五、说明



1、以上内容为个人多次测试结果,由于个人原因,如有分析不足之处还请见谅及指正。

     2、文章涉及内容,请的生产环境模拟。



0
0