news 2026/8/10 2:55:56

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;查看表空间详细信息,进一步结合实践加深理解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 20:02:36

PyTorch-CUDA环境 vs 传统Anaconda:谁更适合深度学习?

PyTorch-CUDA环境 vs 传统Anaconda:谁更适合深度学习? 在现代深度学习项目中,一个稳定、高效的开发环境往往决定了从实验到部署的成败。许多开发者都曾经历过这样的场景:代码写好了,模型结构也没问题,结果…

作者头像 李华
网站建设 2026/8/5 16:58:52

华为云国际站代理商如何使用EDCM进行跨账号代维?

华为云国际站代理商使用 EDCM 进行跨账号代维,核心是 “伙伴中心 EDCMIAM 委托” 三端联动,流程分 “前置授权准备→EDCM 接入与授权→跨账号切换与运维→权限 / 日志管理” 四步,全程可视化、可批量操作,单客户约 15 分钟完成&a…

作者头像 李华
网站建设 2026/8/7 6:46:53

GitHub热门项目都在用的PyTorch环境,现在一键就能部署

GitHub热门项目都在用的PyTorch环境,现在一键就能部署 在AI研发一线摸爬滚打过的人都知道,最让人头疼的往往不是模型调参、也不是数据清洗,而是——环境配不起来。 明明代码是从GitHub上拉下来的开源项目,文档写得清清楚楚“依赖&…

作者头像 李华
网站建设 2026/8/7 16:39:00

阿里云服务器如何实现与其他阿里云产品的无缝集成?

阿里云服务器ECS通过VPC专有网络实现与其他阿里云产品的无缝集成,提供安全、高效的云上资源互通能力。以下是核心集成方式:一、VPC专有网络:统一网络基础设施VPC为ECS提供隔离的虚拟网络环境,支持自定义IP地址段、子网划分和路由策…

作者头像 李华