DM数据库体系结构(易理解版)

一、DM逻辑存储结构

1.1各类名词解释

为了便于结构的理解,先进行部分名词的解释

记录:数据库表中的每一行是一条记录
:数据页(也称数据块)是 DM 数据库中最小的数据存储单元。在 DM 数据库中,页大小可以为 4KB、8KB、16KB 或者32KB,用户在创建数据库时可以指定,默认大小为 8KB。
:簇是数据页的上级逻辑单元,由同一个数据文件中 16 个或 32 个或 64 个连续的数据页组成。在 DM 数据库中,簇的大小由用户在创建数据库时指定,默认大小为 16。
:段是簇的上级逻辑分区单元,它由一组簇组成。在同一个表空间中,段可以包含来自不同文件的簇,即一个段可以跨越不同的文件。
表空间:表空间由一个或者多个数据文件组成。
DM数据库:指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。
实例:是用来访问数据库的内存结构以及后台进程的集合,就是操作 DM 数据库的一种手段。

1.2逻辑结构介绍

多个页组成了簇,一个或多个簇组成了段,一个或多个段组成了数据文件,一个或多个多个数据文件组成了表空间,一个或多个多个表空间组成了数据库,由小到大的关系大致可以表示为:

页 -> 簇 -> 段 -> 文件 -> 表空间 -> 数据库

注:一个段可以跨多个数据文件,但一个簇总是在一个数据文件中。

详细的逻辑结构如下图1-1。

在这里插入图片描述
图1-1DM数据库的逻辑结构

在创建 DM 数据库时,会自动创建 4 个表空间:

SYSTEM 表空间:存放了有关 DM 数据库的字典信息;
ROLL 表空间:用来存放事务运行过程中执行 DML 操作之前的值;
MAIN 表空间:如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间,MAIN 表空间为混合表空间。
TEMP 表空间:为临时表空间。

用户可以通过执行如下语句来查看 SYSTEM、ROLL、MAIN 以及 TEMP 的表空间相关信息。

SELECT * FROM V$TABLESPACE;

二、DM物理存储结构

2.1物理存储结构介绍

DM 数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据。典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等。

在这里插入图片描述
图2-1 物理存储结构

2.2配置文件

配置文件是 DM 数据库用来设置功能选项的一些文本文件的集合,配置文件以 ini 为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:

  • 启用/禁用特定功能项;
  • 针对当前系统运行环境设置更优的参数值以提升系统性能

2.3控制文件

每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

  1. 数据库名称;
  2. 数据库服务器模式;
  3. OGUID 唯一标识;
  4. 数据库服务器版本;
  5. 数据文件版本;
  6. 数据库的启动次数;
  7. 数据库最近一次启动时间;
  8. 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,数组的方式保存起来;
  9. 控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改。

2.4数据文件

数据文件以 dbf 为扩展名,一个 DM 数据文件对应磁盘上的一个物理文件或者达梦分布式数据库中的一个逻辑文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。

数据文件按数据组织形式,可以分为如下几种:
B 树数据:其数据是按 B 树索引组织的
堆表数据:数据是以挂链形式存储的,一般情况下,支持最多 128 个链表,一个链表在物理上就是一个段
列存储数据:按列方式组织存储,包含每个列对应的存放列数据的一系列数据文件,以及存放列数据控制信息的辅助表。
位图索引:每个索引条目不是指向一行数据,而是指向多行数据。每个索引项保存的是一定范围内所有行与当前索引键值映射关系的位图。

2.5其他文件

1.重做日志文件:重做日志(即 REDO 日志)指在 DM 数据库中增删改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以 log 为扩展名。

2.归档日志文件:在归档模式下,重做日志被连续写入到归档日志后,生成了归档日志文件。归档日志文件以归档时间命名,扩展名也是 log。但只有在归档模式下运行时,DM 数据库才会将重做日志写入到归档日志文件中。

3.逻辑日志文件:果在 DM 数据库上配置了复制功能,复制源就会产生逻辑日志文件。

4.物理逻辑日志文件:物理逻辑日志,是按照特定的格式存储的服务器的逻辑操作,专门用于 DBMS_LOGMNR包挖掘获取数据库系统的历史执行语句。

5.备份文件:备份文件以 bak 为扩展名。

6.SQL 日志文件:是一个纯文本文件,内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。

7.时间日志文件:事件日志文件对 DM 数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO 错误等一些致命错误。

8.数据重演文件:调用系统存储过程 SP_START_CAPTURE 和 SP_STOP_CAPTURE,可以获得数据重演文件。重演文件用于数据重演,存储了从抓取开始到抓取结束时,DM 数据库与客户端的通信消息。

三、DM内存结构

DM 数据库管理系统的内存结构主要包括内存池、缓冲区、排序区、哈希区等。根据系统中子模块的不同功能,对内存进行了上述划分,并采用了不同的管理模式。

3.1内存池

动态视图 V$MEM_POOL 详细记录了当前系统中所有的内存池的状态,内存池包含,共享内存池和运行时内存池。

种类解释
共享内存池是 DM Server 在启动时从操作系统申请的一大片内存
运行时内存池是从操作系统申请一片内存作为本功能模块的内存池来使用,如会话内存池、虚拟机内存池

3.2缓冲区

种类解释
数据缓冲区是 DM Server 在将数据页写入磁盘之前以及从磁盘上读取数据页之后,数据页所存储的地方。
日志缓冲区是用于存放重做日志的内存缓冲区
字典缓冲区主要存储一些数据字典信息,如模式信息、表信息、列信息、触发器信息等
SQL缓冲区提供在执行 SQL 语句过程中所需要的内存,包括计划、SQL 语句和结果集缓存
排序区当用户执行 SQL 语句时,常常需要进行排序,所使用的内存就是排序缓冲区提供的。在每次排序过程中,都首先申请内存,排序结束后再释放内存。
哈希区该该缓冲区是个虚拟缓冲区,在进行哈希连接时,对排序的数据量进行了计算。如果计算出的数据量大小超过了哈希缓冲区的大小,则使用 DM8创新的外存哈希方式。

四、管理DM线程

DM 服务器使用“对称服务器构架”的单进程、多线程结构。这里所指的线程即为操作系统的线程。服务器在运行时由各种内存数据结构和一系列的线程组成,线程通过一定的同步机制对数据结构进行并发访问和处理,以完成客户提交的各种任务。

DM 进程中主要包括监听线程、IO 线程、工作线程、调度线程、日志线程等。

达梦在线服务平台: https://eco.dameng.com/

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值