oracle块头,深入解析Oracle ASSM 段头块(PAGETABLE SEGMENT HEADER)结构

本文深入解析Oracle的Automatic Segment Space Managed(ASSM)中的段头块结构,通过创建和插入数据,使用bbed工具查看和dump数据块,然后用C语言解析其二进制结构,揭示了包括Block type、SCN、位图等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念介绍

Oracle ASSM(Automatic Segment Space Managed)使用位图来管理数据库中的空间,具有管理简单、高并发等优点,ASSM的整体结构是3层位图块+数据块,即4层的树状结构,如下所示,

44781

01ee04cd81724ff381ff1b7f21a279f4.png

Oracle ASSM中Segment Header内部结构由Cache Header、Header Control及L2 BMB array三层结构组成,Oracle数据块类型代码为“type: 0x23=PAGETABLE SEGMENT HEADER”,由于bbed工具不支持查询Segment Header的物理结构,本节主要使用C语言解析Segment Header物理结构。

二、使用bbed查看PAGETABLE SEGMENT HEADER结构

SQL> create table hsql.orastar_1(c_char char(10),c_vchar varchar2(10));

Table created.

SQL> insert into hsql.orastar_1 values('a','a');

1 row created.

SQL> insert into hsql.orastar_1 values('b','bb');

1 row created.

SQL> commit;

Commit complete.

set linesize 200 pagesize 200

col owner for a10

col segment_name for a10

select owner,segment_name,header_file,header_block,SEGMENT_TYPE from dba_segments where segment_name='ORASTAR_1';

OWNER   SEGMENT_NA HEADER_FILE HEADER_BLOCK SEGMENT_TYPE

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

HSQL   ORASTAR_15  1698 TABLE

BBED: Release 2.0.0.0.0 - Limited Production on Fri Jan 10 18:45:52 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED> set dba 5,1698

DBA            0x014006a2 (20973218 5,1698)

BBED> map v

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

Block: 1698                                  Dba:0x014006a2

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

BBED-00400: invalid blocktype (35)

BBED>

三、dump结构解析

alter session set tracefile_identifier='orastar_01';

oradebug setmypid

alter system dump datafile 5 block 1698;

oradebug close_trace

oradebug tracefile_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值