达梦数据库体系结构: 逻辑存储结构

数据库与实例

数据库:DM 数据库指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。

实例:一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。

DM 数据库存储在服务器的磁盘上,而 DM 实例则存储于服务器的内存中。

简单来说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。

在任何时候,一个实例只能与一个数据库进行关联(装载、打开或挂起数据库)。

在大多数情况下,一个数据库也只有一个实例对其进行操作。

在 DM 共享存储集群(DMDSC)中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。


DM 逻辑存储结构

DM 数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。

在 DM 数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都存放在这些表空间中。

表空间被进一步划分为段、簇和页(也称块)。

通过这种细分,可以使得 DM 数据库能够更加高效地控制磁盘空间的利用率。



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

····数据库由一个或多个表空间组成;

····每个表空间由一个或多个数据文件组成;

····每个数据文件由一个或多个簇组成;

····段是簇的上级逻辑单元,一个段可以跨多个数据文件;

····簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;

····页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元;

DM 逻辑存储结构:数据库 --> 表空间 --> 段 --> 簇 --> 页(块)

1、表空间

DM 数据库中的所有对象在逻辑上都存放在表空间中,物理上都存储在所属表空间的数据文件中。

在创建 DM 数据库时,会自动创建 5 个表空间:SYSTEM、ROLL、MAIN、TEMP、HMAIN

SYSTEM:该表空间存放了有关 DM 数据库的字典信息,用户不能在 SYSTEM 表空间创建表和索引。

ROLL:该表空间用来存放事务运行过程中执行 DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。

MAIN:在创建用户时,如果没有指定默认表空间,则系统自动指定该表空间为用户的默认表空间。

TEMP:当用户的 SQL 语句需要磁盘空间来完成某个操作时,DM 数据库会从该表空间分配临时段。

HMAIN:当用户在创建 HUGE 表时,未指定 HTS 表空间的情况下,该表空间充当默认 HTS 表空间。

每个用户都有一个默认的表空间。

SYS、SYSSSO、SYSAUDITOR 系统用户,默认的用户表空间是 SYSTEM,而 SYSDBA 系统用户的默认用户表空间是 MAIN。

如果用户在创建表的时候,指定了存储表空间A,并且和用户的默认表空间B不一致时,表存储在用户指定的表空间A中,且默认情况下,表上的索引也将存储在表空间A中。

----查看SYSTEM、ROLL、MAIN、TEMP表空间信息

select * from v$tablespace;

----查看HMAIN表空间信息

select * from v$huge_tablespace;

2、段

段是簇的上级逻辑分区单元,段由一组簇组成。

在同一个表空间中,段可以包含来自不同数据文件的簇,即一个段可以跨越不同的数据文件。

由于簇的数量是按需分配的,所以数据段中的不同簇在磁盘上不一定连续。

段可以分为数据段、临时段、回滚段。

数据段

表中的数据以表数据段结构存储,索引中的数据以索引数据段结构存储。

DM 以簇为单位给每个数据段分配空间,当数据段的簇空间用完时,DM 数据库就给该段重新分配簇,段的分配和释放完全由 DM 数据库自动完成。

可以在创建表或索引时设置存储参数来决定数据段的簇如何分配。

当用户使用 CREATE 语句创建表/索引时,DM 创建相应的数据段。

对于分区表,每个分区使用单独的数据段来容纳所有数据,分区表上的非分区索引,使用一个索引数据段来容纳所有索引数据。

对于分区索引,每个分区使用一个单独的索引数据段来容纳其数据。

临时段

在 DM 数据库中,所有的临时段都创建在临时表空间中,这样可以分流磁盘设备的I/O,也可以减少由于在 SYSTEM 或其他表空间内频繁创建临时数据段而造成的碎片。

当处理一个查询时,经常需要为 SQL 语句的解析与执行的中间结果(如排序)准备临时空间。

DM 数据库会自动地分配临时段的磁盘空间。

对于临时表及其索引,DM 数据库也会为它们分配临时段。

回滚段

DM 数据库在回滚表空间的回滚段中保存了用于恢复数据库操作的信息。

对于未提交事务,当执行回滚操作时,回滚记录被用来做回滚变更操作。

在数据库恢复阶段,回滚记录被用来做任何未提交变更的回滚。

在多个并发事务运行期间,回滚段还为用户提供读一致性。

3、簇

簇是数据页的上级逻辑单元,由同一数据文件中 16 个或 32 个或 64 个连续的数据页组成。

簇的大小由用户在创建数据库时指定,默认大小为 16,簇的大小不能改变。

分配数据簇

当创建一个表/索引时,DM 为表/索引的数据段分配至少一个簇(默认为一个簇),同时数据库会自动生成对应数量的空闲数据页,供后续操作使用。

····当 DM 数据库的表空间为新的簇分配空闲空间时,首先在表空间按文件从小到大的顺序在各个数据文件中查找可用的空闲簇,找到后进行分配;

····如果各数据文件都没有空闲簇,则在各数据文件中查找空闲空间足够的,将需要的空间先进行格式化,然后进行分配;

····如果各数据文件的空闲空间也不够,则选一个数据文件进行扩充。

释放数据簇

在删除表/索引对象中的记录的时候,DM 数据库通过修改数据文件中的位图来释放簇,释放后的簇被视为空闲簇,可以供其他对象使用。

当用户删除了表中所有记录时,DM 数据库仍然会为该表保留 1-2 个簇供后续使用。

若用户使用 DROP 语句来删除表/索引对象,则此表/索引对应的段以及段中包含的簇全部收回。

对于临时表空间,DM 数据库会自动释放在执行 SQL 过程中产生的临时段,并将属于此临时段的簇空间还给临时表空间。

需要注意的是,临时表空间文件在磁盘所占大小并不会因此而缩减,可以通过系统函数 SF_RESET_TEMP_TS 来进行磁盘空间的清理。

4、页

数据页(也称数据块)是 DM 数据库中最小的数据存储单元。

页的大小对应物理存储空间上特定数量的存储字节,也大小可以为 4BK、8KB、16KB 或 32KB,默认为 8KB,不能改变。

页的组成:页头控制信息、数据、空闲空间、行偏移数组。

页头控制信息包含了关于页类型、页地址等信息。

页的中部存放数据,为了更好的利用数据页,在数据页的尾部专门留出一部分空间用于存放行偏移数组,行偏移数组用于标识页上的空间占用情况以便管理数据页自身的空间。



https://eco.dameng.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容