DM数据库体系结构学习是奠定了未来数据库学习的高度,必须要把体系结构中的每一点都完全掌握,才能更好的管理DM数据库。

一、概念

1.1 表空间与数据文件

DM数据库的表空间是一个逻辑概念,其目的主要是为了方便数据库的管理,数据库的所有对象在逻辑上都存放在某个表空间中,而物理上都存储在所属表空间的数据文件中。一个表空间由一个或多个数据文件组成。

在创建DM数据库时,系统会自动创建5个表空间

SYSTEM表空间:存放了DM数据库全局字典信息和全局系统数据,是DM数据库能够正常运行的必要前提,默认对应数据文件 SYSTEM.DBF。

ROLL表空间:存放DM数据库运行过程中产生的所有回滚记录。 ROLL 表空间是数据库全局对象,不论修改哪一个表空间,生成的回滚记录都是写入 ROLL 表空间,该表空间由系统自动维护,默认数据文件为 ROLL.DBF。

TEMP表空间:存放临时表数据以及数据库运行过程中产生的临时数据。TEMP 表空间的默认数据文件为 TEMP.DBF。

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

HMAIN 表空间:DM的HUGE表空间,用来存放HUGE表数据文件。

 1.2 重做日志

重做日志,它另一个名字叫redo日志;与oracle中的redo log类似。它记录了所有物理页的修改,基本信息包括操作类型、表空间号、文件号、页号、页内偏移、实际数据等。数据库中

DM数据库默认包含两个扩展名为 og的日志文件,用来保存REDO日志,称为联机

重做日志文件。这两个文件循环使用。任何数据页从内存缓冲区写入磁盘之前,必须保证其对应的

1.3 归档日志

DM数据库可以在归档和非归档两种模式下运行。DM支持多种归档方式,当数据库处于归档模式下且配置了本地归档时,REDO日志先写入联机日志文件,然后再异步写入归档日志文件。归档日志文件以配置的归档名称和文件创建时间命名,扩展名也是 log。系统在归档模式下运行会更安全,当出现介质故障,如磁盘损坏导致数据文件丢失、异常时,利用归档日志,系统可以恢复至故障发生的前一刻。 因此,建议将归档目录与数据文件配置、保存到不同的物理磁盘上。除了表备份还原,其他的联机备份与还原必须运行在归档模式下。

1.4 检查点

DM数据库运行过程中,用户的所有操作都在内存中进行。每修改一条记录都必须先把记录所在的数据页加载到BUFFER缓冲区中,然后进行修改。事务运行时,会把生成的REDO日志保留在日志缓冲区RLOG_BUF中,每条日志记录对应一个LSN,当事务提交或日志缓冲区满或执行检查点时会进行日志刷盘。检查点(checkpoint)是一个数据库事件,它的功能是按照数据页的修改顺序,依次将 BUFFER 缓冲区中的脏页写入磁盘,并在这个过程中动态调整 CKPT_LSN 值,释放日志空间。

DM的检查点分为两种,完全检查点和部分检查点:

完全检查点:会将内存缓冲区中的所有脏页写入磁盘,并调整 CKPT_LSN,在数
据库正常关闭时会产生一个完全检查点。

部 分 检 查 点:根 据dm.ini配 置 文 件 中 的 参 数CKPT_FLUSH_RATE和CKPT_FLUSH_PAGES,确定每次检查点刷脏页的数量。执行部分检查点的过程中,DDL/DML操作都可以正常执行,DM系统中绝大多数情况下触发的都是部分检查点

1.5 DM备份恢复

DM数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM7 数据库的操作,归根结底都是对某个数据文件页的读写操作。

DM备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。

DM还原与恢复是备份的反过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定