注册
初识达梦(一):逻辑结构
专栏/技术分享/ 文章详情 /

初识达梦(一):逻辑结构

刘刘 2025/11/07 191 0 0
摘要

前序

关于数据库的概念,不做专门的论述。简单来讲,数据库就是部署在服务器上,然后提供对应服务的一个基础软件。从而大家可以得知,它肯定有它的实现逻辑方式,物理的存储方式(内存、物理文件),启动后应该有对应的进程。本文我们先对实现逻辑进行一些描述,后期再对其它进行单独的讨论。

逻辑结构

DM 数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。在 DM 数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都存放在这些表空间中。同时,表空间被进一步划分为段、簇和页(也称块)。

image.png

可以看出,在 DM8 中存储的层次结构如下:

  1. 数据库由一个或多个表空间组成;
  2. 每个表空间由一个或多个数据文件组成;
  3. 每个数据文件由一个或多个簇组成;
  4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
  5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
  6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。

表空间

从上图中,我们可以得知初始化是,会有五个表空间,那么他们分别的作用是什么呢?
1、SYSTEM 表空间存放了有关 DM 数据库的字典信息
2、ROLL 表空间完全由 DM 数据库自动维护,用户无需干预,通俗理解为UNDO。该表空间用来存放事务运行过程中执行 DML(数据操作语言)操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。
3、RLOG 表空间称为日志表空间。通俗理解为REDO。默认2个,循环写。
4、MAIN 表空间 是一个混合表空间。初始化是创建,以及一个 HMAIN 目录作为 HUGE 数据文件路径。为啥它叫混合表空间呢?
5、TEMP 表空间完全由 DM 数据库自动维护。比如创建索引、大查询排序等操作都会用到。

关联参数

我们了解到了基本的逻辑结果,那么对应的参数是哪些呢?

一次性参数

数据库初始化后就不可变更的参数:
页:PAGE_SIZE
数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。创建成功后,可通过系统函数 SF_GET_PAGE_SIZE()获取系
统的页大小。
簇:EXTENT_SIZE
数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。创建成功后,可以通过SF_GET_EXTENT_SIZE()获取系统的簇大小。

可修改参数

RLOG 表空间
LOG_SIZE 初始化是可以指定。也可以后期通过resie来改变大小(ALTER DATABASE RESIZE LOGFILE)
TEMP 表空间
TEMP_SIZE 默认创建的临时表空间大小,单位 MB。
TEMP_SPACE_LIMIT 临时表空间大小上限,单位 MB。0 表示不限制临时表空间大小。

以上内容为个人对达梦学习的初步认知,受限于视角与经验,不足之处恳请指正。

谢谢

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服