DM的逻辑结构
在DM目前的数据库中,数据库和实例这两个概念可以单独拿出来当做不同的实体看待,这一点和orcale一样,区别在于orcale是多进程的,而达梦是单进程的。在同时提到达梦数据库和实例时,达梦数据库往往是指磁盘上存放的数据集合,一般包括数据文件、日志文件、控制文件以及临时数据文件等。而实例一般是由一组正在运行的达梦后台进程以及一个大型的共享内存组成,可以看成是操作数据库的一种手段。从另一个角度来看,DM数据库存储在服务器的磁盘上,实例则存储于服务器的内存中。两者的对应关系简单来说是一个实例只与一个数据库关联,一个数据库也只有一个实例对其进行操作(大多数情况下)。
达梦的服务器也是由数据库+实例组成,具体逻辑架构可以以下图为例:
客户端的请求通过实例传递,由实例访问数据库,访问信息也是由实例返回给客户端。
DM的物理结构
DM 数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据,包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等,如图所示。
- 配置文件:配置文件以 ini 为扩展名,如dm.ini, dmarch.ini,可以通过select * from v$dm_ini命令来查看系统配置。
- 控制文件:控制文件的全称是dm.ctl。控制文件是一个二进制文件,它记录了数据库必要的初始信息,包括版本信息、物理架构信息、OGUID、SGUID等。
- 数据文件:数据文件以 dbf 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁 盘上的一个物理文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。
- 重做日志文件:主要用于数据库的备份和恢复。
DM的内存结构
达梦的内存结构有共享内存、数据缓冲区、字典缓冲区等多个部分组成,其中共享内存的分配方式如下图所示: