#DM逻辑存储结构

1.关于DM的逻辑存储结构,我们先来看一张图,我们从这张图展开介绍。如下所示:

从这张逻辑结构图可以看出,在 DM 数据库内 部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都 存放在这些表空间中。同时,表空间被进一步划分段、簇和页。通过这种逻辑结构的设计, 可以使得 DM 数据库能够更加高效地控制磁盘空间的利用率。

在 DM8 中存储的层次结构可以从如下6条来理解和总结:

1. 数据库由一个或多个表空间组成;
2. 每个表空间由一个或多个数据文件组成;
3. 每个数据文件由一个或多个簇组成;
4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。
2.逻辑结构弄清楚了,那么每一层逻辑结构单元 分别 又是什么,起着什么样的作用,下面分别介绍一下表空间,记录,页,簇,段。
#表空间:
表空间由一个或者多个数据文件组成。 DM 数据库中的所有对象在逻辑 上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。
在创建 DM 数据库时,会自动创建 4 个表空间:
SYSTEM 表空间
ROLL 表空间
MAIN 表空间和
TEMP 表空间
我们可以通过执行如下语句来查看 SYSTEM 、 ROLL 、 MAIN 以及 TEMP 的表空间相关信 息。
SELECT * FROM V$TABLESPACE;

#记录:
数据库表中的每一行是一条记录。在 DM 中,除了 HUGE 表,其他的表都是在数据页中 按记录存储数据的。也就是说,记录是存储在数据页中的,记录并不是 DM 数据库的存储单 位,页才是。由于记录不能跨页存储,这样记录的长度就受到数据页大小的限制。数据页中 还包含了页头控制信息等空间,因此 DM 规定每条记录的总长度不能超过页面大小的一半。
#页:

上图是页的结构分布

页是 DM 数据库中最小的数据存储单元。页的大小对应物理存储空 间上特定数量的存储字节,在 DM 数据库中,页大小可以为 4KB 、 8KB 、 16KB 或者 32KB , 用户在创建数据库时可以指定,默认大小为 8KB ,一旦创建好了数据库,则在该库的整个生 命周期内,页大小都不能够改变。

#簇

簇是数据页的上级逻辑单元,由同一个数据文件中 16 个或 32 个或 64 个连续的数据页 组成。在 DM 数据库中,簇的大小由用户在创建数据库时指定,默认大小为 16。假定某个数 据文件大小为 32MB,页大小为 8KB,则共有 32MB/8KB/16=256 个簇,每个簇的大小为 8K*16=128K。和数据页的大小一样,一旦创建好数据库,此后该数据库的簇的大小就不能够改变。

#段:

段是簇的上级逻辑分区单元,它由一组簇组成。在同一个表空间中,段可以包含来自不 同文件的簇,即一个段可以跨越不同的文件。而一个簇以及该簇所包含的数据页则只能来自 一个文件,是连续的 16 或者 32 个数据页。由于簇的数量是按需分配的,数据段中的不同簇在磁盘上不一定连续。段又分为数据段,临时段和回滚段。

#DM物理存储结构

关于DM物理存储结构,我们同样以一张结构图开始分析。如下图所示:

从上图我们可以清楚地看到各个文件之间的关系。
DM物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等。
下面一一介绍一下各个文件的概念及其作用。
#配置文件:
配置文件是 DM 数据库用来设置功能选项的一些文本文件的集合,配置文件以    为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:
1. 启用 / 禁用特定功能项;
2. 针对当前系统运行环境设置更优的参数值以提升系统性能
#控制文件
每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记
录了数据库必要的初始信息,其中主要包含以下内容:
1. 数据库名称;
2. 数据库服务器模式;
3. OGUID 唯一标识;
4. 数据库服务器版本;
5. 数据文件版本;
6. 数据库的启动次数;
7. 数据库最近一次启动时间;
8. 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的
表空间,数组的方式保存起来;
9. 控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控
制文件合法性,防止文件损坏及手工修改。
#数据文件:
数据文件以 dbf 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁盘上的一个物理文件或者达梦分布式数据库中的一个逻辑文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。当 DM 的数据文件空间用完时,它可以自动扩展。可以在创建数据文件时通过 MAXSIZE 参数限制其扩展量,当然,也可以不限制。但是,数据文件的大小最终会受物理磁盘大小的限制。在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。
数据文件中还有两类特殊的数据文件: ROLL 和 TEMP 文件。
ROLL 文件:
ROLL 表空间的 dbf 文件,称为 ROLL 文件。 ROLL 文件用于保存系统的回滚记录,提供事务回滚时的信息。回滚文件可被分为若干回滚段,每个事务的回滚页在回滚段中各自挂链,页内则顺序存放回滚记录。
TEMP 文件:
TEMP.DBF 临时数据文件,临时文件可以在 dm.ini 中通过 TEMP_SIZE 配置大小。当数据库查询的临时结果集过大,缓存已经不够用时,临时结果集就可以保存在TEMP.DBF 文件中,供后续运算使用。系统中用户创建的临时表也存储在临时文件中。

#重做日志文件

重做日志 指在 DM 数据库中添加、删除、修改对象,或者改变数据,DM 都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以 log 为扩展名。每个 DM 数据库实例必须至少有 2 个重做日志文件,默认两个日志文件 为 DAMENG01.log 、 DAMENG02.log ,这两个文件循环使用。
重做日志文件因为是数据库正在使用的日志文件,因此被称为联机日志文件。
重做日志文件主要用于数据库的备份与恢复。理想情况下,数据库系统不会用到重做日志文件中的信息。然而现实世界总是充满了各种意外,比如电源故障、系统故障、介质故障, 或者数据库实例进程被强制终止等,数据库缓冲区中的数据页会来不及写入数据文件。这样, 在重启 DM 实例时,通过重做日志文件中的信息,就可以将数据库的状态恢复到发生意外时的状态。
重做日志文件对于数据库是至关重要的。它们用于存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。在 DM 数据库运行过程中,任何修改数据库的操作都会产生重做日志,例如,当一条元组插入到一个表中的时候,插入的结果写入了重做日志,当删除一条元组时,删除该元组的事实也被写了进去,这样,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态
#归档日志文件
日志文件分为联机日志文件和归档日志文件。 DM 数据库可以在归档模式和非归档模式下运行。非归档模式下,数据库会只将重做日志写入联机日志文件中进行存储;归档模式下, 数据库会同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。
归档日志文件,就是在归档模式下,重做日志被连续写入到归档日志后,所生成了归档
日志文件。归档日志文件以归档时间命名,扩展名也是 log 。但只有在归档模式下运行时,
DM 数据库才会将重做日志写入到归档日志文件中。采用归档模式会对系统的性能产生影响,
然而系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一
旦出现介质故障,如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可
以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。
#逻辑日志文件
如果在 DM 数据库上配置了复制功能,复制源就会产生逻辑日志文件。逻辑日志文件是 一个流式的文件,它有自己的格式,且不在第一章所述的页,簇和段的管理之下。 逻辑日志文件内部存储按照复制记录的格式,一条记录紧接着一条记录,存储着复制源 端的各种逻辑操作。用于发送给复制目的端。详细内容请看“数据复制”章节。
#物理逻辑日志文件
物理逻辑日志,是按照特定的格式存储的服务器的逻辑操作,专门用于 DBMS_LOGMNR 包挖掘获取数据库系统的历史执行语句。当开启记录物理逻辑日志的功能时,这部分日志内 容会被存储在重做日志文件中。
要开启物理逻辑日志的功能,需要满足下面两个条件:
首先 ,要设置 RLOG_APPEND_LOGIC 为 1 、 2 或者 3 ;
其次 ,通过设置参数 RLOG_IGNORE_TABLE_SET=1 或者建表(或修改表)时指定 ADD
LOGIC LOG 开 启 。 如 果 需 要 记 录 所 有 表 的 物 理 逻 辑 日 志 , 设 置 INI 参 数
RLOG_IGNORE_TABLE_SET 为 1 即可;如果只需要记录某些表的物理逻辑日志,设置 INI
参数 RLOG_IGNORE_TABLE_SET 为 0 ,并在建表或者修改表的语法中使用 ADD LOGIC LOG 。
#备份文件
备份文件以 bak 为扩展名,当系统正常运行时,备份文件不会起任何作用,它也不是数据库必须有的联机文件类型之一。然而,从来没有哪个数据库系统能够保证永远正确无误地运行,当数据库不幸出现故障时,备份文件就显得尤为重要了。
当客户利用管理工具或直接发出备份的 SQL 命令时, DM Server 会自动进行备份,并产生一个或多个备份文件,备份文件自身包含了备份的名称、对应的数据库、备份类型和备份时间等信息。同时,系统还会自动记录备份信息及该备份文件所处的位置,但这种记录是松散的,用户可根据需要将其拷贝至任何地方,并不会影响系统的运行。
#SQL日志文件
用户在 dm.ini 中配置 SVR_LOG 参数后就会打开 SQL 日志。
SQL 日志文件是一个纯文本文件。当 PART_STOR=0 时,以“ dmsql_ 实例名 _ 日期 _ 时间”命名,当 PART_STOR=1 时,以“ dmsql_ 实例名 _ 用户名 _ 日期 _ 时间”命名。缺省生成在 DM 安装目录的 log 子目录下面,管理员可通过 sqllog.ini 参数 FILE_PATH 设置其生成路径。
SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。
#事件日志文件
DM 数据库系统在运行过程中,会在 log 子目录下产生一个 “dm_实例名_日期” 命名的事件日志文件。事件日志简称 ELOG 。事件日志文件对 DM 数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO 错误等一些致命错误。事件日志文件主要用于系统出现严重错误时进行查看并定位问题。事件日志文件随着 DM 数据库服务的运行一直存在。事件日志文件打印的是中间步骤的信息,所以出现部分缺失属于正常现象。
#数据重演文件
调用系统存储过程 SP_START_CAPTURE 和 SP_STOP_CAPTURE ,可以获得数据重演文件。重演文件用于数据重演,存储了从抓取开始到抓取结束时,DM 数据库与客户端的通信消息。使用数据重演文件,可以多次重复抓取这段时间内的数据库操作,为系统调试和性能调优提供了另一种分析手段。
更多技术交流,请登录达梦在线服务平台:eco.dameng.com

DM的逻辑存储结构和物理存储结构相关推荐

  1. 【MySQL】Innodb存储引擎之物理存储结构(MySQL专栏启动)

  2. mysql 非结构化数据_hbase非结构化数据库与结构化数据库比较

    目的:了解hbase与支持海量数据查询的特性以及实现方式 传统关系型数据库特点及局限 传统数据库事务性特别强,要求数据完整性及安全性,造成系统可用性以及伸缩性大打折扣.对于高并发的访问量,数据库性能不 ...

  3. 完蛋!面试官问我 InnoDB 的物理存储结构!

    前段时间去面试,面试官突然问我:聊聊 InnoDB 的物理存储结构吧! 树义突然又眼圈一黑,啥都想不起来了! 虽说之前有大致了解过 MySQL,但对 InnoDB 的物理结构,却真的没咋了解过!那么, ...

  4. 第二篇:MySQL之InnoDB物理存储结构

    第二篇:MySQL中InnoDB引擎的物理存储结构 1. 个人理解 看了很多MySQL的书籍和博客,感觉都是互相抄来抄去,把知识点的罗列,讲不清楚前因后果,让人看起来莫名其妙的.所以,我决定从MySQ ...

  5. pg数据库表存放在哪里_超详细的PG数据存储结构--逻辑结构和物理存储总结,值得收藏...

    概述 今天主要讲讲PG的数据结构,PG数据存储结构分为:逻辑结构和物理存储. 其中逻辑存储结构是内部的组织和管理数据的方式.物理存储结构是操作系统中组织和管理数据的方式.逻辑存储结构适用于不同的操作系 ...

  6. 题10 能给出数据库物理存储结构和物理存取方法的是什么?

    考查对数据库系统的认识 问:     能给出数据库物理存储结构和物理存取方法的是什么?     a.内模式     b.外模式     c.概念模式     d.逻辑模式      解析:     求 ...

  7. Oracle物理存储结构--文件

    原文地址:[基础]Oracle物理存储结构--文件作者:诗意方式 1 数据文件 3.查询数据文件参数 要将数据文件置为脱机状态,可以通过下列语句实现,如将SCOTT对象的数据文件置为脱机状态: SQL ...

  8. oracle实验报告2:: Oracle数据库物理存储结构管理(含实验小结)

    目录 实验目的 实验设备及器材 实验内容 实验步骤 实验过程 实验小结 实验目的 1.熟悉Oracle数据库物理存储结构: 2.掌握Oracle数据库数据文件的管理: 3.掌握Oracle数据库控制文 ...

  9. oracle数据库存储结构语句,oracle之物理数据库结构描述

    oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...

最新文章

  1. 选择Java加密算法第2部分–单密钥对称加密
  2. 较简单的字节输入流输出流拷贝文件
  3. Python笔记-CAPM(资本资产定价模型)例子
  4. Apache Maven 入门篇 ( 上 )
  5. php行为和事件是什么,Yii Framework框架中事件和行为的区别及应用实例分析
  6. 构建高质量的前端工程完全指南
  7. linux中批量替换文本中字符
  8. 惠普传真服务器位置,HP打印机ip地址设置及添加
  9. 手工制作夜光星星的方法
  10. 对于面试官的问答: 你在项目组里拿到一个项目是怎么开展的呢???
  11. 场景法、流程分析法、错误推断法
  12. Android应用实现开机自启动
  13. 【硬件工程师】芯片手册阅读-电阻式触摸屏控制芯片
  14. 解决make: *** [install-recursive] Error 1问题
  15. 周问题回复-滤波器-锁相环BL参数及环路滤波器参数问题
  16. 草根微信营销的案例剖析
  17. 华为手机如何用微信与电脑连接服务器,华为手机也能连接苹果电脑,只需这样做...
  18. 【Spring源码三千问】Bean的Scope有哪些?scope=request是什么原理?
  19. C++ 在函数中定义函数
  20. 基于Java的师生交流系统

热门文章

  1. contentType 与 dataType
  2. 关于 Bitmap.createScaledBitmap(); 重新生成新的bitmap 问题
  3. Squid代理缓存服务器
  4. 日常读书笔记(每周听五本书)
  5. 用友nc65 uap开发 使用同一个元数据开发两个节点后使用不同的审批流
  6. 苹果电脑win10双系统如何进入安全模式
  7. vim 退出命令(保存、放弃保存)
  8. 数智洞见 | 你买基金了吗?聊聊标签画像在基金行业的应用
  9. 当贝投影F3和爱普生TW5700 有什么区别哪个好
  10. 编程实现如下图案:菱形的‘‘ * ‘‘图案