【转载“GBase 8s数据库”公众号】 GBase 8s 存储结构:从物理页到逻辑空间的全面解析
理解存储结构是掌握数据库原理的关键一步。本文系统介绍 GBase 8s 数据库从物理存储单元到逻辑存储单元的层次关系,并与 Oracle 存储结构进行对照。
一、GBase 8s 存储结构总览
GBase 8s 的存储结构采用层次化设计,从底层到顶层依次由物理存储单元和逻辑存储单元组成。
- 物理存储单元直接对应磁盘上的实际数据组织形式,包括页(Page)和块(Chunk)。
- 逻辑存储单元则是数据库为管理方便而抽象出的概念,包括数据库空间(DbSpace)、表空间(TableSpace)和段(Extent)。

一个 GBase 8s 实例(Instance)可以创建多个 DbSpace,一个 DbSpace 可以包含多个物理 Chunk,一个 Chunk 划分为多个连续的段,一个表或索引占用的空间被称为一个 TableSpace,一个段包含多个物理页 Page。其中,DbSpace、TableSpace 和段属于逻辑存储单元;Chunk 和 Page 属于物理存储单元。
二、物理存储单元:Page 与 Chunk
2.1 数据页(Page)
数据页(Page)是 GBase 8s 中最基本的存储单元,也是数据库服务的最小 I/O 单元。所有的系统信息和用户数据都被存储在数据页上,表的记录、索引的索引键都以 Page 为存储单位进行管理。
在大多数系统中,默认的数据页大小为 2KB。数据页大小是可配置的,在创建数据空间时指定,最大值为 16KB。GBase 8s 支持不同大小的数据页:2KB、4KB、8KB、16KB,管理员可以根据实际业务场景选择合适的页大小。
从内部结构来看,一个数据页总体上分为三部分:
+----------------------------------+
| 页头 (24 字节) |
| - 页地址、校验位、标记位、记录数 |
+----------------------------------+
| 数据部分 |
| - Slot 方式存储行记录/索引键 |
| - 最多 255 个 Slot |
+----------------------------------+
| 页尾 |
| - 时间戳、Slot 描述信息 |
+----------------------------------+
- 页头:占用 24 字节空间,包含页的地址信息、校验位、标记位、记录数计数器等元数据
- 数据部分:以 Slot 的方式存储实际的行记录或索引键,一个数据页最多能存储 255 个 Slot
- 页尾:包含时间戳和每个 Slot 的描述信息
2.2 块(Chunk)
块(Chunk)是用于存储数据的连续磁盘空间,可以是一个裸设备(Raw Device)或其一部分,也可以是文件系统中的一个文件(Cooked File)。Chunk 是数据库与操作系统存储之间的桥梁,为数据提供了物理上的连续存储区域。
| 参数项 | 数值 |
|---|---|
| 单个 Chunk 最大容量 | 4 TB |
| 单个实例最多 Chunk 数 | 32,767 |
| Root Chunk | 包含保留页及系统表等关键信息 |
| 非 Root Chunk | 存储表、索引数据,划分为多个连续的段 |
三、逻辑存储单元:DbSpace、TableSpace 与 Extent
3.1 数据库空间(DbSpace)
数据库空间(DbSpace)是 Chunk 的集合,是 GBase 8s 中核心的逻辑存储管理单元。创建 DbSpace 时至少包含一个 Chunk。
在实际生产环境中,通常按照 DbSpace 的作用进行规划分类:
| DbSpace 类型 | 用途说明 |
|---|---|
| Root DbSpace | 根目录,存储保留页及系统数据库信息(如 sysmaster、sysadmin 等 |
| Plog DbSpace | 物理日志空间,存储物理日志文件 |
| Llog DbSpace | 逻辑日志空间,存储逻辑日志文件 |
| Temp DbSpace | 临时表空间,存储临时表及排序、Join 所需的临时空间 |
| Data DbSpace | 普通表空间,存储用户定义的表、索引数据 |
| Blobspaces | 简单大对象空间,存储简单大对象(TEXT 或 BYTE 类型) |
| Sbspaces | 智能大对象空间,存储智能大对象(CLOB 或 BLOB 类型) |
3.2 表空间(TableSpace)
表空间(TableSpace)是一个逻辑概念,是针对某个表而言的存储描述。物理上,TableSpace 是某个表使用的所有段的集合。GBase 8s 用 TableSpace 来描述一个表或索引所占用的空间信息,一个 TableSpace 可以分布在不同的 DbSpace 或 Chunk 上。
3.3 段(Extent)
段(Extent)是连续数据页的集合,是 TableSpace 存储空间分配的基本单位。在创建表时,GBase 8s 会根据 Extent Size 确定该表的初始空间;当数据不断增长导致空间不足时,数据库以段为单位进行空间扩展,可以通过Next Size 参数来控制每次空间扩展的大小。
四、GBase 8s 与 Oracle 存储结构对照
建立与 Oracle 的对照关系有助于理解 GBase 8s 的存储结构。两者的存储层次在设计上高度相似,概念之间存在明确的映射关系。
4.1 核心概念对照表
| GBase 8s 概念 | Oracle 对应概念 | 说明 |
|---|---|---|
| Page | Data Block | 都是最小 I/O 单元。GBase 8s 默认 2KB,Oracle 默认 8KB,均可配置 |
| Extent | Extent | 都是物理上连续的存储单元集合,是空间分配的基本单位 |
| TableSpace | Segment | 描述一个表/索引所占用的空间 |
| Chunk | Datafile | 物理存储载体,GBase 8s 的 Chunk 可以是裸设备或文件系统文件;Oracle 的 Datafile 是操作系统层面的物理文件 |
| DbSpace | Tablespace | Chunk/Datafile 的集合,逻辑存储管理层 |
| Instance | Instance | 数据库服务运行时的进程和内存结构的集合 |
| Database | Schema | 数据的逻辑集合,一个实例可管理多个数据库 |
4.2 层次结构对比
GBase 8s 存储层次(从大到小):
Instance(实例)
|-- DbSpace(数据库空间)
|-- Chunk(物理块)
|-- Extent(段)
|-- Page(数据页)
|-- Row(数据行 / Slot)
Oracle 存储层次(从大到小):
Instance(实例)
|-- Tablespace(表空间)
|-- Datafile(数据文件)
|-- Extent(区)
|-- Data Block(数据块)
|-- Row(数据行)
五、大对象存储
GBase 8s 针对大对象数据提供了专门的存储机制,分为简单大对象和智能大对象两类。
5.1 简单大对象
简单大对象(TEXT 或 BYTE 类型)可以存储在普通的 DbSpace 中,也可以存储在专门的 Blobspace 中。当存储在 Blobspace 时,数据库通过虚拟段单独使用较小的缓存将数据直接写入磁盘,不占用 Buffer Pool 内存空间。
Blobspace 中的基本存储单元是 blobpage,其大小可被配置为数据库服务器数据页(Page)大小的整数倍。
5.2 智能大对象
智能大对象(CLOB 和 BLOB 类型)必须存储在 Sbspace 上。Sbspace 的第一个 Chunk 包含三个部分,其他 chunk 可以共用第一个 chunk 的元数据区域:
| 区域名称 | 功能描述 |
|---|---|
| 元数据区域 | 保存标识 Sbspace 关键信息及 Sbspace 上的每个智能大对象的元数据 |
| 用户数据区域 | 存储实际的智能大对象数据 |
| 保留区 | 供元数据区域和用户数据区域扩展时分配 |
六、存储限制
了解 GBase 8s 的存储限制对于数据库设计和容量规划至关重要。
存储限制(以 2KB Page Size 为例):
| 存储限制项 | 最大值 |
|---|---|
| 单个 Chunk 最大容量 | 4 TB |
| 单个实例最多 Chunk 数 | 32,767 |
| 单个实例最多 DbSpace 数 | 2,047 |
| 一页最多包含的数据行数 | 255 |
| 一个表最大行数 | 4,277,659,295 |
| 表最大支持的列数 | 32,767 |
| 单个实例最大支持的数据库数 | 21,000,000 |
| 单个实例最大支持的表数 | 477,102,080 |
七、总结
GBase 8s 的存储结构从物理层的 Page 和 Chunk,到逻辑层的Extent、TableSpace 和 DbSpace,每一层都有明确的职责和作用。理解这一层次关系,有助于进行存储规划、性能调优和故障排查。在实际工作中,建议根据业务数据特征合理选择数据页大小,规划 DbSpace 的分类布局,并监控段的增长情况。
热门帖子
- 12025-12-01浏览数:183150
- 22023-05-09浏览数:25914
- 42023-09-25浏览数:19556
- 52020-05-11浏览数:18171