DM数据库逻辑存储结构解析

一、数据库与实例:从概念分离到协同工作

在DM7及之后的版本中,数据库(Database)与实例(Instance)被明确区分为两个不同的实体,这一区分是理解DM架构的基础。

  • 数据库 指的是存储在磁盘上的物理数据集合,包括数据文件、日志文件、控制文件等。
  • 实例 则是运行在内存中的一套工具集合,由后台进程/线程和共享内存组成,负责操作数据库。

简单来说,数据库是静态的存储,而实例是动态的执行环境。通常情况下,一个实例一次只能操作一个数据库,但在DMDSC(共享存储集群)等高可用架构下,多个实例可以同时访问同一个数据库,实现了更高的可用性与负载均衡。

二、逻辑存储层次:从表空间到数据页

DM数据库采用层次化的逻辑存储结构,所有数据最终都存储在数据文件中,并通过以下层级进行组织与管理:

  1. 数据库 → 由一个或多个表空间构成
  2. 表空间 → 包含一个或多个数据文件
  3. 数据文件 → 由一个或多个簇组成
  4. → 由多个簇组成,并可跨数据文件分布
  5. → 由一组连续的数据页组成,且仅属于一个数据文件
  6. 页(块) → 最小的存储与I/O单元

这种结构既保证了存储的灵活性,也提升了磁盘空间的利用效率。

三、表空间:数据组织的逻辑容器

表空间是数据库中最顶层的逻辑存储单元,所有数据库对象在逻辑上都属于某个表空间。DM数据库在初始化时会自动创建四个基础表空间:

表空间 类型 主要用途
SYSTEM 普通表空间 存放数据字典信息,禁止用户创建表和索引
ROLL 普通表空间 自动维护,用于存储DML操作前的数据,保障读一致性
MAIN 混合表空间 默认表空间(SYSDBA),可同时存储普通表与HUGE表,初始化包含MAIN.DBF文件
TEMP 普通表空间 存放SQL执行过程中产生的临时数据,如排序中间结果、临时表等

建议:在生产环境中,建议为业务数据创建独立的表空间,或直接使用MAIN表空间,以提升管理清晰度与性能。

四、数据页与记录:最小的存储单元

  • 页(Page) :大小为4KB、8KB、16KB或32KB,默认为8KB,一经创建不可更改。每个数据页包括页头、数据区、空闲空间和行偏移数组,是I/O操作的基本单位。
  • 记录(Record):即数据表中的一行。记录必须完整存储在一个数据页内,因此其长度不能超过页大小的一半。

性能调优参数:FILLFACTOR

FILLFACTOR(填充因子)是数据页级别的优化参数,用于平衡存储空间利用率和更新性能:

  • 设置范围:0--100,表示数据页初始化后可用于插入的空间百分比。
  • 工作机制:剩余空间(100-FILLFACTOR)预留用于后续更新,避免因数据扩展导致页分裂。
  • 使用建议
    • 若数据多读少更新,可设为较高值(如90-100)以提升存储密度;
    • 若数据频繁更新,建议适当降低(如70-80),减少页分裂带来的I/O开销。

五、簇与段:空间分配的逻辑单元

  • 簇(Extent):由同一文件中连续的16、32或64个数据页组成(默认为16页)。数据库自动管理簇的分配与释放,空间不足时自动扩展数据文件。
  • 段(Segment) :由多个簇组成,可跨数据文件分布。分为三类:
    1. 数据段:存储表或索引数据,创建对象时自动建立;
    2. 临时段:存放SQL执行中的中间结果,系统自动管理;
    3. 回滚段:保存事务回滚和读一致性所需的数据,由系统自动维护。

六、总结

DM数据库通过清晰的逻辑存储层次------数据库→表空间→段→簇→页→记录,实现了数据的高效组织与存取。理解这些基本概念,有助于管理员更好地进行数据库规划、性能调优与日常维护。无论是普通业务系统还是高可用的DMDSC集群,这一存储逻辑都为DM数据库的稳定与高效运行提供了坚实的基础。

提示:可通过 SELECT * FROM V$TABLESPACE; 查看表空间详细信息,进一步结合实践加深理解。

相关推荐
今晚务必早点睡14 小时前
微服务改数据库密码后服务仍能访问?一次“看似异常、实则常见”的生产现象全解析
数据库·微服务·oracle
老师我太想进步了202616 小时前
cmd连接MySQL及相关查询
数据库·mysql
難釋懷18 小时前
Redis命令-Set命令
数据库·redis·缓存
Linux-palpitate19 小时前
PostgreSQL(PG)的1主2从集群部署安装
数据库·postgresql
dingdingfish19 小时前
Oracle数据库19c技术架构
oracle·database·architecture·19c·technical
heartbeat..19 小时前
数据库基础知识体系:概念、约束、范式与国产产品
java·数据库·学习笔记·国产数据库
山峰哥20 小时前
数据库工程核心:SQL调优让查询效率飙升的实战密码
网络·汇编·数据库·sql·编辑器
Coder_Boy_20 小时前
基于SpringAI的在线考试系统-DDD业务领域模块设计思路
java·数据库·人工智能·spring boot·ddd
小雪_Snow21 小时前
Windows 安装 MySQL 8.0 教程【安装包方式】
数据库·mysql
无敌的牛21 小时前
MySQL初阶
数据库·mysql