博客
关于我
DM达梦数据库体系结构详解
阅读量:566 次
发布时间:2019-03-09

本文共 1866 字,大约阅读时间需要 6 分钟。

DM数据库系统结构分析

1、DM逻辑结构

达梦(DM)数据库系统的逻辑结构与Oracle类似,主要包括实例和数据库两个概念。两者唯一的区别在于:达梦是单进程模型,而Oracle是多进程模型。

实例与数据库

  • 实例:在达梦中,实例是由共享内存和后台进程或线程组成的。通常情况下,一个数据库对应一个实例,不过在DSC(DM共享集群)环境下,多个实例可以共享同一个数据库。

  • 数据库:数据库是存储在磁盘文件中的容器,类似Oracle的schema。数据库可以由一个或多个表空间组成。

数据库的组成

  • 表空间:数据库由一个或多个表空间组成,每个表空间由一个或多个数据文件组成。
  • 数据文件:数据文件是存储实际数据的地方,每个数据文件对应磁盘上的一个物理文件。
  • :页是数据库中的最小存储单位,也是IO操作的基本单位。

2、DM物理结构

DM数据库的物理存储结构包括配置文件、控制文件、数据文件、重做日志文件、归档文件、逻辑日志文件、备份文件以及日志文件等。

2.1 配置文件

配置文件是DM数据库的功能设置文件,主要以ini为扩展名,例如dm.inidmarch.ini

2.2 控制文件

每个数据库都有一个名为dm.ctl的控制文件,记录了数据库的初始信息。这是一个二进制文件。

2.3 数据文件

数据文件以dbf为扩展名,是数据库中最重要的文件类型。一个数据库至少有一个数据文件,实际应用中通常有多个数据文件。

2.4 重做日志文件

重做日志文件用于数据库的备份和恢复,是数据库Crash recovery的重要依据。

2.5 归档文件

归档日志文件支持恢复到故障前的时间点,也可以还原到指定的时间点。

2.6 逻辑日志文件

在配置数据库复制时,会产生逻辑日志文件。

2.7 备份文件

备份文件以bak为扩展名。

2.8 日志文件(事件日志)

在DM数据库上配置SVR_LOG和SVR_LOG_SWITCH_COUNT参数后,会生成事件日志文件,这些文件记录了系统运行中的关键事件,如启动、关闭、内存申请失败等。

3、DM内存结构

在DM数据库中,内存结构主要包含内存池、缓冲区、排序区、哈希区等区域。这些区域的设计和管理方式与Oracle类似。

3.1 共享内存

共享内存是指系统可用的物理内存资源,用来存放各个数据库的共享区域。查看共享内存大小可以通过以下SQL语句:

SQL> select para_name, para_value from v$dm_ini where para_name='MEMORY_TARGET';

3.2 数据缓冲区

数据缓冲区用于存储数据库操作的相关内容,是实现高效数据访问的关键。缓冲区采用LRU(最不_recently_used)的回收策略。

状态 描述
free 最近未使用
dirty 数据已修改
clean 无数据
pending 数量不足

查看缓冲区大小和最大值可以通过以下SQL语句:

SQL> select para_name, para_value from v$dm_ini where para_name='BUFFER';  -- 查看缓冲区大小SQL> select para_name, para_value from v$dm_ini where para_name='MAX_BUFFER';  -- 查看最大缓冲区大小

3.3 字典缓冲区

字典缓冲区用于存储数据字典信息,参数DICT_BUF_SIZE控制字典缓冲区的大小。

3.4 SQL缓冲区

SQL缓冲区存储最近执行的SQL语句和查询结果集,用于减少硬interpreted(解析)次数。

3.5 排序区

排序区用于存放排序操作的缓存。当内存不足时,部分排序操作会临时写到磁盘上。

3.6 HASH区

HASH区用于存放哈希表的数据,是查询某些信息的有效区域。

3.7 重做日志文件管理

管理重做日志文件可以通过以下SQL命令:

SQL> select path from v$rlogfile;  -- 查看重做日志文件路径SQL> alter database add logfile '/dm7/data/DAMNEG/DAMENG04.log' size 512;  -- 添加日志文件SQL> alter database resize logfile '/dm7/data/DAMNEG/DAMENG04.log' to 1024;  -- 修改日志文件大小

需要注意所有重做日志文件大小必须一致。

转载地址:http://ydcpz.baihongyu.com/

你可能感兴趣的文章
nrf24l01+arduino
查看>>
nrf开发笔记一开发软件
查看>>
nrm —— 快速切换 NPM 源 (附带测速功能)
查看>>
nrm报错 [ERR_INVALID_ARG_TYPE]
查看>>
NS3 IP首部校验和
查看>>
NSDateFormatter的替代方法
查看>>
NSError 的使用方法
查看>>
NSGA-Ⅲ源代码
查看>>
nsis 安装脚本示例(转)
查看>>
NSJSON的用法(oc系统自带的解析方法)
查看>>
nslookup 的基本知识与命令详解
查看>>
NSNumber与NSInteger的区别 -bei
查看>>
NSOperation基本操作
查看>>
NSRange 范围
查看>>
NSSet集合 无序的 不能重复的
查看>>
NSURLSession下载和断点续传
查看>>
NSUserdefault读书笔记
查看>>
NS图绘制工具推荐
查看>>
NT AUTHORITY\NETWORK SERVICE 权限问题
查看>>
NT symbols are incorrect, please fix symbols
查看>>