ITPub博客

首页 > 数据库 > Oracle > Oracle 11G 区管理方式

Oracle 11G 区管理方式

原创 Oracle 作者:Haoword_wang 时间:2023-08-12 23:53:30 0 删除 编辑

Oracle  11G 表空间数据文件区管理方式有两种分别是统一区大小表空间和系统管理区大小表空间。Oracle 11G 默认管理方式为系统管理区大小。

如下是创建一个新表空间,并且创建一张表:



从上述查询结果可以看出,数据文件从6号问题的128号块开始分配,分配了8个块,每个块8K,即一个区分配64K,6号文件从0号块到127号块未分配给表,说明是用于内部管理使用,我们使用dump 命令查看一下:

6号文件0号和1号块信息(数据文件头):

6号文件2号块-127号块信息(KTFB Bitmapped File Space Header):


......

6号文件128号块信息(FIRST LEVEL BITMAP BLOCK):


从上述结果可以看出: 数据文件0-1号数据块记录数据文件信息,2-127号块是位图,用于管理数据块

第二 当表插入数据时,数据库如何给表分配空间,随着数据量的增加,区分配大小从64K(8*8K)到 1M(128*8k),各区的大小从最初8个 64K的区,多个1M的区,详细自行测试(alter table test.test  allocate extent;),如下:


针对dump 文件内容解析材料如下:

域

长度

含义

type

1

本 Block 的类型,可以取值:

  • 0x01 undo segment header
  • 0x02 undo block
  • 0x03 save undo header block
  • 0x04 save undo data block
  • 0x05 data segment header block(temp, index, data)
  • 0x06 KTB managed data block(with ITL)
  • 0x07 temp table data block(no ITL)
  • 0x08 sort key
  • 0x09 sort run
  • 0x0a segment free list block
  • 0x0b data file header
  • 0x0c data segment header with FLG blcks
  • 0x0e unlimited undo segment header
  • 0x0f unlimited save undo segment header
  • 0x10 unlimited data segment header
  • 0x11 unlimited data segment header with FLG blocks
  • 0x12 extent map block
  • 0x17 bitmapped segment header
  • 0x1d KTFB bitmapped file space header
  • 0x1e KTFB bitmapped file space bitmap
  • 0x20 first level bitmap block
  • 0x21 second level bitmap block
  • 0x22 third level bitmap block
  • 0x23 pagetable segment header block
  • 0x24 pagetable extent map block
  • 0x25 system managed undo extent map block

frmt

1

格式,标识不同的 block 版本

spare1/2

2

保留

rdba

4

相对 block 地址,前 10 个 bit 为相对文件 id ,后 22 个 bit 为 block 号,可见 1 个 tablespace 可以有 1023 个 datafile ,每个 datafile 可以有 4M 个 block

scn

6

本 block 最近一次更新时的 scn

seq

1

如果更新本 block 时 scn 相同,则 seq 加 1

flg

1

组合标志位:

  • 0x01  新 block , data 部分为空;
  • 0x02 delayed logging change advance SCN/SEQ
  • 0x04  校验 CHECKSUM
  • 0x08  临时 block

chkval

2

flg 的 CHECKSUM 标志为真时,写入前对 block 计算 CHECKSUM ,并填入本域,后继读出时会再次计算并检查,防止块损坏

spare3

2

保留

 KTFB Bitmapped File Space Bitmap部分关键信息

域

含义

beginblock

存放 data 的 block 地址,前面的区域存放Data File   Header、KTFB Bitmapped File Space Header、KTFB Bitmapped File Space Bitmap

flag

0 permanent 文件, 1 临时文件

first

本 block 中第 1 个可用的 unit 位置

free

本 block 中 free 的 unit 数量

map

1 个 bit 代表 1 个 unit , 0 表示 free , 1 表示 used

 segment 3级bitmap管理机制

表1.2-6 L1 BMB部分关键信息

一级域

二级域

含义

parent dba

其归属的 L2 BMB 地址

unformatted

未格式化的 block 数量

total

MAP 中 block 总数

first useful block

MAP 中第 1 个可用的 block

MAP(*n)

offset

extent 的地址,即 extent 中第一个 block 的地址

length

extent 中 block 的数量

bits

标识 extent 中各个 block 的状态,每个 block 的状态占用 4 个 bit 位:

  • 0000 : unformatted ,尚未格式化;
  • 0001 : full ,已满;
  • 0010 : <25% ,空闲空间 <25% ;
  • 0011 : 25-50% ,空闲空间 25-50% ;
  • 0100 : 50-75% ,空闲空间 50-75% ;
  • 0101 : >75 ,空闲空间 >75% ;
  • 0110 : metadata ,元数据 block , segment header block 、 BMB 都是 metadata block ;

表1.2-7 L2 BMB部分关键信息

一级域

二级域

含义

parent dba

其归属的 L3 BMB 地址或 segment   header block 地址

number

MAP 中 L1 BMB 的数量

nfree

MAP 中尚有空闲空间的 L1 BMB 数量

ffree

MAP 中已满的 L1 BMB 数量

MAP(*n)

dba

L1 BMB 的地址

free

5 :空闲;

0 : FULL ;

部分材料来自:https://developer.aliyun.com/article/1137769

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26342786/viewspace-2969943/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle Postgresql MySQL DBA,DEVOPS 开发人员

注册时间:2013-03-03

  • 博文量
    73
  • 访问量
    69127