暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

深入解析Oracle ASSM结构之Level 2 Bitmap Block

数据库技术笔记 2021-02-04
2031

一、概念介绍


Oracle Level 2 Bitmap Block(简称L2)中存储Level 1 Bitmap Block(简称L1)的地址,L2内部结构由CacheHeader、Header Control及L1 BMB array三层结构组成,Oracle数据块类型代码为“type: 0x21=SECOND LEVEL BITMAP BLOCK”,和L3相同bbed工具同样不支持查询L2的物理结构,本节主要使用C语言解析L2物理结构。

Header Control内容:

L2 的HeaderControl结构包含以下内容:

  • 对应父节点L3 BMB地址(简称L3);

  • 对应L1的地址;

  • 空闲空间L1数量;

  • 下一个L2地址;

  • 事务操作类型;

  • 锁操作描述;

L1 BMB array内容:

  • L1地址;

  • 每个块最大空闲状态;

  • 关联实例。

 

二、dump块结构解析



alter session set tracefile_identifier='orastar_bmb2';

oradebug setmypid

alter system dump datafile 5 block 7705;

oradebug close_trace

oradebug tracefile_name

 

Cache Header

type: 0x21 SECOND LEVEL BITMAP BLOCK表示该块为L2数据块,

 

 

Header Control

  • pdba: 表示父节点L3地址;

  • number: 表示L1数量;

  • Objd: 表示对象object_id;

  • nfree: Free标志为非1的L1数量;

  • ffree: Free标志为1的L1数量。

 


L1 BMB array

  • L1地址

  • 数据块的最大空闲状态: - 1: unformatted.- 2: formatted &freespace between 0 and 25%- 3: formatted &freespace between 25% and 50%- 4: formatted &freespace between 50% and 75%- 5: formatted &freespace between 75% and 100%- 6: formatted &block is full

  • 关联实例:单实例为1


 

三、二进制结构



Cache Header


 

Header Control


 

 

L1 BMB array


四、数据块解析



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

BBED> set dba 5,7705

         DBA             0x01401e19(20979225 5,7705)

 

BBED> map v

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

 Block: 7705                                 Dba:0x01401e19

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

BBED-00400: invalid blocktype (33)

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

 

五、说明



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

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




                    君子谋道不谋食。君子忧道不忧贫。  --《论语》




文章转载自数据库技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论