DM 数据存储(一)- 存储文件概述

229 阅读5分钟

前言

达梦数据库作为已商业化的国产数据库代表,在政府及事业单位应用还是比较广泛。最近学习达梦数据库的过程中对已学习的相关内容作个简单记录,方便以后查阅。本篇文章是个人在学习达梦数据库数据存储内容时作的简要总结,也希望这篇文章能够帮助有需求的人快速了解达梦数据库。

问题提出

  • 数据库要存储的那些数据?何如存储?存储在何处?

数据库要存储的数据可以归纳为以下几类

  • 用户数据:用户使用数据库的目的
  • 数据字典:用户数据的组织方式
  • 保证ACID及数据安全的数据
    • 重做
    • 回滚
    • 备份
  • 用于故障及错误分析的数据习
  • 服务功能配置文件

存储文件总览

1. DM服务器的存储文件

1.1 新初始化库的文件情况

image.png

  • 配置文件
    配置文件是DM数据库用来设置功能选项的一些文本文件,配置文件以ini为扩展名,他们有固定的格式。以下列出一些配置文件及其功能说明:
配置文件
功能说明
dm.ini服务器配置文件
dmmal.iniMAL通信系统配置文件
dmarch.ini重做日志归档配置文件
sqllog.iniSQL跟踪日志的配置文件
dm_svc.conf客户端配置文件
  • 控制文件
    控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中包括:

    • 数据库名称
    • 数据库服务器模式
    • OGUID唯一标识
    • 服务器版本
    • 数据文件版本
    • 启动次数及最后一次启动时间
    • 表空间信息
    • 控制文件校验码
  • 控制文件备份
    在服务器运行期间,执行表空间的DDL等操作后,服务器内部需要同步修改控制文件内容。如果在修改过程中服务器故障,可能会导致控制文件损坏,为了避免出现这种情况,在修改控制文件时系统内部会执行备份操作。

  • 控制文件转化
    可通过dmctlcvt来进行ctl文件和文本文件之间的转化

1.2 数据文件

存储数据的二进制文件,以dbf作为扩展名,在逻辑上有与之对应的表空间。大致分类如下:

  • 行存储数据文件
    • 对应系统自带的系统表空间SYSTEM、默认用户表空间MAIN以及用户自定义的行存数据表空间
    • 可用来存储以行存储方式组织的B树、堆表以及位图索引的数据
    • 逻辑上采用段、簇、页分层的方式进行管理
  • 列存储数据文件
    • 对应系统自创的列存目录HMAIN以及用户自定义表空间列存目录
    • 存储列存数据
    • 逻辑上采用数据分片的方式进行管理
  • 回滚数据文件
    • 对应系统自创的回滚表空间ROLL
    • 保存系统的回滚记录
  • 临时数据文件
    • 对应系统自创的临时数据表空间TEMP
    • 用于存储临时表数据以及缓存不足时转存到磁盘的临时数据

1.3 重做日志文件

  • 在DM数据库中添加、删除、修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。

  • 重做日志文件是以log为扩展名的二进制文件。

注意:不是所有的以log为扩展名的都是重做日志文件

  • 每个DM数据库实例必须至少有2个重做日志文件 , 默认两个日 文件为DAMENG01.log、DAMENG02.log,这两个文件循环使用。
  • 因为是数据库正在使用的日志文件,因此被称为联机日志文件。
  • 存储数据库的事务日志,以便系统在出现故障时能够进行故障恢复。
  • 日志归档
    • 配置了归档的运行模式下,会对重做日志文件进行归档;
    • 归档日志文件以归档时间命名,扩展名也是 log。
    • 归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小。
    • 重做日志归档是一些数据库高级功能,比如数据守护等的基础。

1.4 事件日志文件及跟踪日志文件

记录服务器运行期间信息的文本文件,用于分析定位系统错误。常用的有:

  • 服务器事件日志

    • DM数据库系统在运行过程中,会在log子目录下产生一个“dm_实例名_日期”命名的事件日志文件。
    • 事件日志文件对运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等错误。
    • 事件日志文件随着DM数据库服务的运行一直存在。
  • SQL跟踪日志

    • 配置中打开了SQL跟踪之后会生成的日志
    • 记录运行期间服务器锁运行的SQL语句及其运行结果
    • 可在sqllog.ini中对所跟踪的内容进行定制

1.5 各文件的存储方式

文件类型修改频率数据格式数据库读写方式
配置文件极少文本一次性读写全部内容
控制文件极少二进制一次性读写全部内容
数据文件频繁二进制读写指定位置数据
重做日志文件频繁二进制写在文件末尾【循环】从指定位置顺序读
事件及跟踪日志文件文本写在文件末尾

结语

追风赶月莫停留,平芜尽处是春山。获取更多技术支持可以访问达梦在线服务平台

eco.dameng.com/