暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DM 物理存储结构

原创 官档 2023-05-06
618

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

1.1 配置文件

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

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

1.2 控制文件

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

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

1.3 数据文件

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

当 DM 的数据文件空间用完时,它可以自动扩展。可以在创建数据文件时通过 MAXSIZE 参数限制其扩展量,当然,也可以不限制。但是,数据文件的大小最终会受物理磁盘大小的限制。在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。

1.4 重做日志文件

重做日志(即 REDO 日志)指在 DM 数据库中添加、删除、修改对象,或者改变数据,DM 都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件默认以 log 为扩展名,可在初始化数据库时使用建库参数 RLOG_POSTFIX_NAME 指定重做日志文件的扩展名。每个 DM 数据库实例必须至少有 2 个重做日志文件,默认两个日志文件为 DAMENG01.log、DAMENG02.log,这两个文件循环使用。

1.5 归档日志文件

日志文件分为联机日志文件和归档日志文件。DM 数据库可以在归档模式和非归档模式下运行。非归档模式下,数据库会只将重做日志写入联机日志文件中进行存储;归档模式下,数据库会同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。

1.6 逻辑日志文件

如果在 DM 数据库上配置了复制功能,复制源就会产生逻辑日志文件。逻辑日志文件是一个流式的文件,它有自己的格式,且不在第一章所述的页,簇和段的管理之下。

1.7 物理逻辑日志文件

物理逻辑日志,是按照特定的格式存储的服务器的逻辑操作,专门用于 DBMS_LOGMNR 包挖掘获取数据库系统的历史执行语句。当开启记录物理逻辑日志的功能时,这部分日志内容会被存储在重做日志文件中。

1.8 备份文件

备份文件以 bak 为扩展名,当系统正常运行时,备份文件不会起任何作用,它也不是数据库必须有的联机文件类型之一。然而,从来没有哪个数据库系统能够保证永远正确无误地运行,当数据库不幸出现故障时,备份文件就显得尤为重要了。

1.9 SQL 日志文件

用户在 dm.ini 中配置 SVR_LOG 参数后就会打开 SQL 日志。

SQL 日志文件缺省生成在 DM 安装目录的 log 子目录下面,管理员可通过 sqllog.ini 参数 FILE_PATH 设置其生成路径。

SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。

用户可以通过动态视图 V$DM_SQLLOG_INI 来查看 sqllog.ini 中的 SQL 日志模式及其配置,并通过调用系统过程 SP_SET_SQLLOG_INI()或 SP_DELETE_SQLLOG_INI_MODE()来动态修改 sqllog.ini 文件的内容,修改后可以调用系统过程 SP_REFRESH_SVR_LOG_CONFIG()来使所做的修改生效。

1.10 事件日志文件

事件日志文件记录了 DM 数据库运行时的关键事件。例如:系统启动、关闭、内存申请失败、IO 错误等一些致命错误;数据库运行过程中的日志信息;备份还原过程中备份还原操作的阶段性信息等。

通过查询动态视图 V$ELOG_FILE 可以获得当前实例的日志文件的信息。可以使用系统过程 SP_ELOG_FILE_DELETE 删除指定文件名的 ELOG 日志文件。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论