DM数据库体系结构介绍

1、DM逻辑结构

DM 数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。在 DM 数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都 存放在这些表空间中。同时,表空间被进一步划分为段、簇和页(也称块)。通过这种细分, 可以使得 DM 数据库能够更加高效地控制磁盘空间的利用率。

下图显示了这些数据结构之间的关系。

DM数据库体系结构介绍_第1张图片

在 DM8 中存储的层次结构如下:

  • 数据库由一个或多个表空间组成;
  • 每个表空间由一个或多个数据文件组成;
  • 每个数据文件由一个或多个簇组成;
  • 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
  • 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
  • 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。

1.1 表空间

在DM数据库中,表空间由一个或者多个数据文件组成。DM数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

在创建DM数据库时,会自动创建5个表空间:SYSTEM表空间、ROLL表空间、MAIN表空间、TEMP表空间和HMAIN表空间。

1. SYSTEM表空间存放了有关DM数据库的字典信息,用户不能在SYSTEM表空间创建表和索引。

2. ROLL表空间完全由DM数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行DML操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。

3. MAIN表空间在初始化库的时候,就会自动创建一个大小为128M的数据文件MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。

4. TEMP表空间完全由DM数据库自动维护。当用户的SQL语句需要磁盘空间来完成某个操作时,DM数据库会从TEMP表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL语句中间结果集以及用户创建的临时表等都会使用到TEMP表空间。

5. HMAIN表空间属于HTS表空间,完全由DM数据库自动维护,用户无需干涉。当用户在创建HUGE表时,未指定HTS表空间的情况下,充当默认HTS表空间。

每一个用户都有一个默认的表空间。对于SYS、SYSSSO、SYSAUDITOR系统用户,默认的用户表空间是SYSTEM,SYSDBA的默认表空间为MAIN,新创建的用户如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。

我们可以通过下面命令查看表空间相关信息:

--查看SYSTEM、ROLL、MAIN和TEMP表空间

SQL> select * from v$tablespace;

行号     ID          NAME   CACHE TYPE$       STATUS$     MAX_SIZE             TOTAL_SIZE           FILE_NUM    ENCRYPT_NAME ENCRYPTED_KEY COPY_NUM    SIZE_MODE

---------- ----------- ------ ----- ----------- ----------- -------------------- -------------------- ----------- ------------ ------------- ----------- ---------

1          0           SYSTEM       1           0           0                    16384                1           NULL         NULL          NULL        NULL

2          1           ROLL         1           0           0                    16384                1           NULL         NULL          NULL        NULL

3          3           TEMP         2           0           0                    1280                 1           NULL         NULL          NULL        NULL

4          4           MAIN         1           0           0                    16384                1           NULL         NULL          NULL        NULL

已用时间: 1.745(毫秒). 执行号:501.

SQL>

--查看HMAIN表空间:

SQL> select * from v$huge_tablespace;

行号     ID          NAME  PATHNAME               DIR_NUM     COPY_NUM    SIZE_MODE

---------- ----------- ----- ---------------------- ----------- ----------- ---------

1          128         HMAIN +DMDATA/data/DSC/HMAIN 1           NULL        NULL

已用时间: 1.264(毫秒). 执行号:500.

SQL>

1.2 记录

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

1.3 页

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

1.4 簇

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

1.5 段

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

段分为数据段、临时段、回滚段。

2、物理存储结构

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

DM数据库体系结构介绍_第2张图片

2.1 配置文件

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

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

2.1.1 dm.ini

每创建一个DM数据库,就会自动生成dm.ini文件。dm.ini是DM数据库启动所必须的配置文件,通过配置该文件可以设置DM数据库服务器的各种功能和性能选项,主要的配置内容详解请参考DM系统管理员手册。

当dm.ini中的某参数值设置为非法值时,若设置值与参数类型不兼容,则参数实际取值为默认值;若设置值小于参数取值范围的最小值,则实际取值为最小值;若设置值大于参数取值范围的最大值,则实际取值为最大值。

参数属性分为三种:静态、动态和手动。静态,可以被动态修改,修改后重启服务器才能生效。

动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。

手动,不能被动态修改,必须手动修改dm.ini参数文件,然后重启才能生效。

2.1.2 dmmal.ini

dmmal.ini是MAL系统的配置文件。dmmal.ini的配置项请参考DM系统管理员手册。需要用到MAL环境的实例,所有站点dmmal.ini需要保证严格一致。

2.1.3 dmarch.ini

dmarch.ini用于本地归档和远程归档,dmarch.ini的配置请参考DM系统管理员手册。

归档类型ARCH_TYPE有以下几种:

  • 本地归档LOCAL(一台主库最多配8个)
  • 远程实时归档REALTIME(一台主库最多配8个)
  • 远程异步归档ASYNC(一台主库最多配8个)
  • 即时归档TIMELY(一个主库最多配8个)
  • 远程归档REMOTE(一个主库最多配8个)

注意事项:

  • 配置名[ARCHIVE_*]表示归档名,在配置文件中必须唯一。
  • 不能存在相同实例名的不同归档;
  • 不能存在DEST相同的不同归档实例;
  • ARCH_TIMER_NAME为定制的定时器名称,定时器配置见dmtimer.ini。

2.1.4 dm_svc.conf

  • DM安装时生成一个配置文件dm_svc.conf,不同的平台所在目录有所不同。
  • 32位的DM安装在Win32操作平台下,此文件位于%SystemRoot%\system32目录;
  • 64位的DM安装在Win64操作平台下,此文件位于%SystemRoot%\system32目录;
  • 32位的DM

你可能感兴趣的:(达梦数据库,数据库,sql,database)