博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DM8数据库体系结构
阅读量:3904 次
发布时间:2019-05-23

本文共 2195 字,大约阅读时间需要 7 分钟。

一、DM8逻辑结构

1.数据库和实例

在DM8中,“数据库”和“实例”这两个概念之间有着很大的差别,甚至可以说它们是两个完全不同的实体。

1.1数据库
DM数据库指的是磁盘上存放在DM数据库中数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。
1.2实例
实例一般是由一组正在运行的DM后台进程/线程以及一个大型的共享内存组成。通过运行DM实例可以操作DM数据库中的内容。

2.DM逻辑存储结构

DM8 数据库由一个或多个表空间组成:在这里插入图片描述

2.1表空间
表空间由一个或多个数据文件组成。在使用初始化数据库工具创建数据库时,会自动创建5个表空间:SYSTEM表空间、ROLL表空间、MAIN表空间、TEMP表空间和HMAIN表空间。
用户可以在终端登录数据库后执行如下命令来查看表空间相关信息:
在这里插入图片描述
2.2页
数据页(数据块)是DM数据库中最小的数据存储单元,页大小可以设置为4KB、8KB、16KB或者32KB,需要在创建数据库时指定,数据库创建之后,在该库的整个生命周期内,页大小都不能改变。同时在DM数据库中页大小的设置也会对数据库中存储字段的长度产生影响,向数据库表中插入字段的长度不能超过页大小的一半,否则无法插入数据。

2.3簇

每一个数据文件由一个或多个簇组成。簇是数据页的上级逻辑单元,由同一个数据文件中16个或32个或64个连续的数据页组成。簇的大小也是在创建数据库时指定,创建之后不能修改。

2.4段

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

二、DM8物理存储结构

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

在这里插入图片描述
1.配置文件
配置文件是 DM 数据库用来设置功能选项的一些文本文件的集合,配置文件以 ini 为扩展名,如dm.ini、dmarch.ini、dmmal.ini等,在之后使用中需要对这些配置文件中的参数值进行修改以启动某些功能,如修改dm.ini中的ARCH_INI参数可以启用归档等。
2.控制文件
每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息。
3.数据文件
数据文件以 dbf 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁盘上的一个物理文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。
4.重做日志文件
重做日志文件又叫redo日志。主要用于数据库的备份和恢复。
5.归档文件
利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,如果没有归档日志文件,则只能利用备份进行恢复。
6.逻辑日志文件
如果在DM数据库上配置了复制功能,复制源就会产生逻辑日志文件。
7.备份文件
备份文件以 bak 为扩展名,用于数据库的备份还原,可以在本机中使用,也可以拷贝到装有DM8的其他机器上进行使用。
8.日志文件(跟踪日志,事件日志)
用户在 dm.ini 中配置 SVR_LOG 和 SVR_LOG_SWITCH_COUNT 参数后就会打开跟踪日志。DM 数据库系统在运行过程中,会在 log 子目录下产生一个“dm_实例名_日期”命名的 事件日志文件。事件日志文件对 DM 数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误。

三、DM8内存结构

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

1.共享内存

查看共享内存大小:在这里插入图片描述

查看系统内存池大小:
在这里插入图片描述

2.缓冲区

2.1 数据缓冲区

DM Server 在将数据页写入磁盘之前以及从磁盘上读取数据页之后,数据页所存储的地方。
2.2日志缓冲区
用于存放重做日志的内存缓冲区。为了避免由于直接的磁盘 IO 而使系统性能受到影响,系统在运行过程中产生的日志并不会立即被写入磁盘,而是和数据页一样,先将其放置到日志缓冲区中。查看方式:
在这里插入图片描述

2.3 字典缓冲区

主要存储一些数据字典信息,如模式信息、表信息、列信息、触发器信息等。每次对数据库的操作都会涉及到数据字典信息,访问数据字典信息的效率直接影响到相应的操作效率,如进行查询语句,就需要相应的表信息、列信息等。查看字典缓冲区:
在这里插入图片描述
2.4SQL缓冲区
提供在执行 SQL 语句过程中所需要的内存,包括计划、SQL 语句和结果集缓存。查看SQL缓冲区:在这里插入图片描述
2.5排序区
排序缓冲区提供数据排序所需要的内存空间,对数据进行排序,如果内存排序无法完成,把部分排序转到磁盘(temp)。
参数 SORT_BUF_SIZE 在 DM 配置文件 dm.ini 中,系统管理员可以设置其大小以满足需求,由于该值是由系统内部排序算法和排序数据结构决定,建议使用默认值 2M。

2.6哈希区

DM8 提供了为哈希连接而设定的缓冲区,不过该缓冲区是个虚拟缓冲区。HAGR_HASH_SIZE 表示处理聚集函数时创建哈希表的个数,建议保持默认值100000:
在这里插入图片描述

转载地址:http://zlmen.baihongyu.com/

你可能感兴趣的文章
POJ 1724 ROADS【DFS+剪枝】
查看>>
AOJ 847 整数拆段
查看>>
AOJ 848 分数拆分
查看>>
UVA 133 The Dole Queue 【约瑟夫环】
查看>>
XDOJ 1208 B.笑爷买房 【DFS】
查看>>
部门年度工作总结的内容
查看>>
pandas学习笔记
查看>>
Numpy笔记
查看>>
正则表达式
查看>>
python线程进程笔记
查看>>
TensorFlow初学者必须了解的55个经典案例
查看>>
机器学习笔记
查看>>
数十种TensorFlow实现案例汇集:代码+笔记
查看>>
python记录的错误与知识
查看>>
内核中各种套接字的关系
查看>>
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>