当前位置: 首页 > article >正文

达梦数据库体系结构学习

提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录前言一、数据库与实例概念二、DM 逻辑存储结构三、物理存储结构四、内存结构五、线程结构总结前言众所周知信息技术应用创新信创是我国筑牢数字安全屏障、实现核心技术自主可控的国家战略数据库作为数字基础设施的 “核心引擎”是信创工程中替代国外产品、保障数据主权与业务安全的关键环节。在信创浪潮全面深化的当下达梦数据库凭借四十余年100% 根代码自研的技术积淀成为国产数据库领域的领军力量为党政、金融、能源、医疗等关键行业的信创落地提供了坚实支撑一起来学习一下达梦数据库的体系结构吧。一、数据库与实例概念1、数据库与实例概念DM 数据库指的是存储在磁盘上的数据集合包含数据文件、日志文件、控制文件和临时数据文件等。实例指的是在内存中运行的数据库管理进程负责管理这些磁盘上的数据文件。2、数据库它主要包括以下几个部分数据文件.BDF存储数据库的实际数据。日志文件.log记录数据库的事务日志用于恢复数据。控制文件.ctl记录数据库的结构信息和状态信息。临时数据文件用于存储临时数据如排序操作的中间结果。3、实例实例是在内存中的进程/线程负责管理和操作数据库包括系统全局区和后台进行。系统全局区内存结构存储数据库的共享数据和控制信息。后台进程多个进程协同工作负责数据库的读写、日志记录、恢复等操作。4、实例与数据库的关系实例是数据库的管理者它在内存中运行管理数据库的所有操作。数据库是实例管理的对象是存储在磁盘上的数据集合。5、DM数据库总体架构图二、DM 逻辑存储结构1.层次关系达梦的逻辑存储结构遵循以下层次关系从上到下是包含关系数据库 (Database) - 表空间 (Tablespace) - 段 (Segment) - 簇 (Extent) - 页 (Page) 数据文件 (Datafile) 作为表空间的物理载体a.数据库有一个或多个表空间组成。b.每个表空间有一个或多个数据文件组成。c.每个数据文件有一个或多个簇组成。d.段是簇的上级逻辑单元一个段可以跨多个数据文件。e.簇由磁盘上连续的页组成一个簇总是在一个数据文件中。f.页是数据库中最小的分配单元也是数据库中使用的最小的IO单元2.数据库 (Database) - 最终的物理与逻辑集合概念数据库是最高层次的逻辑结构是所有表空间、数据文件、段、簇、页的最终集合。它是一个自包含的单元包含了所有的数据、元数据和日志文件。3.表空间 (Tablespace)3.1概念表空间是一个逻辑容器它由一个或多个数据文件组成用于存放所有的段即数据库对象。它是数据库的逻辑划分用于将逻辑存储对象如表、索引与物理数据文件关联起来。3.2类型SYSTEM系统表空间存放数据字典、系统视图、临时系统对象等关键信息。必不可少。ROLL回滚表空间存放事务的回滚信息。用于保证数据一致性和事务回滚。必不可少。TEMP临时表空间存放排序、哈希等操作产生的临时数据。MAIN默认表空间。如果创建对象时不指定表空间则存放在此。HMAIN默认的 HUGE TABLE列存表表空间。用户自定义表空间用户可以根据业务需求创建自己的表空间如USER_DATA,INDEX_DATA将不同业务的数据分离便于管理和性能优化。3.3作用控制磁盘布局可以将不同的表空间映射到不同的磁盘上实现I/O负载均衡。空间管理可以设置表空间的最大大小、是否自动扩展等。用户权限管理可以给用户指定默认表空间和配额。备份恢复单元可以将表空间作为单独的单位进行备份和恢复。4.段 - 特定数据库对象的存储结构4.1概念段是为特定数据库对象如表、索引、回滚段等分配的所有簇的集合。它是一个独立的逻辑存储结构对应一个具体的数据库对象。4.2类型数据段 (Data Segment)存储表或表的分区的数据。索引段 (Index Segment)存储索引的数据。回滚段 (Rollback Segment)存储事务的回滚信息。LOB段 (LOB Segment)存储大型对象如 TEXT, BLOB, CLOB数据。4.3作用每个段只属于一个特定的数据库对象。例如你创建一张表 EMPLOYEES数据库就会自动创建一个数据段来存放该表的数据如果你再为 EMPLOYEES 表创建一个索引 IDX_EMP_ID数据库又会创建一个独立的索引段来存放这个索引。5.簇 (Extent) - 空间分配的单元5.1概念簇是由一系列连续的页组成的逻辑单元。它是数据库为对象如表、索引分配存储空间的基本单位。5.2大小一个簇包含的页数是固定的。当表空间页大小为8K/16K时一个簇包含16个页即128K / 256K当页大小为32K时一个簇包含8个页即256K。5.3作用当创建一个新表时数据库会为其分配一个初始簇。当表的数据不断增长现有簇的空间用完时数据库会一次性分配一个新的簇给这个表。这种按簇分配的方式比按页分配效率高得多减少了空间管理的开销。6.页 (Page) - 最小的I/O单元6.1概念页是达梦数据库中最小的数据存储和管理单元也是磁盘I/O操作的最小单位。所有对象表、索引的数据都存储在页中。6.2大小默认大小为8KB在初始化数据库实例时可以指定为 4K、8K、16K 或32KB建议页大小大于等于操作系统块大小。一旦数据库创建完成页大小就无法更改。6.3内容一个数据页通常包含页头、数据行、空闲空间和页尾等部分。页头包含了诸如页类型、上一页、下一页等信息。6.4作用所有数据的读取和写入都是以“页”为单位进行的。即使只修改一行数据数据库也会将整个页加载到内存缓冲区中修改后最终再整页写回磁盘。7.数据是如何存储的当我们插入一行数据到表中时这行数据会被写入到某个页中。多个连续的页组成了一个簇。该表所有的簇构成了该表的数据段。这个段必须位于某个表空间中。而这个表空间最终由一个或多个物理数据文件组成所有这些共同构成了数据库。三、物理存储结构DM 数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据。1典型的物理存储结构包括用于进行功能设置配置文件用于记录文件分布控制文件用于保存用户实际数据数据文件、重做日志文件、归档日志文件、备份文件用来进行问题跟踪跟踪日志文件和逻辑日志文件等。2.配置文件用于控制和调整数据库实例、进程的行为和性能。2.3分类dm.ini主配置文件包含了数据库运行所需的几乎所有参数如内存设置、线程配置、缓冲区大小、控制文件路径等。其中手工修改dm.ini参数文件,然后重启才能生效。查看参数信息select * from vdm_ini where“VDM_INI”.PARA_NAME like UPPER(‘参数关字’)||‘%’;dmmal.iniMAL系统配置文件用于配置MALMessage Access Layer链路是搭建数据守护、DSC集群等分布式环境所必需的文件。dmarch.ini归档配置文件用于配置本地归档、实时归档、即时归档等是搭建容灾体系的核心文件。dm_svc.conf客户端配置文件用于配置连接别名、端口、负载均衡等方便应用程序连接。注意: dm_svc.conf 的工作目录是固定的不能改变。sqllog.ini用于sql日志的配置当且仅当INI参数SVR_LOG1时使用。注意: 如果在服务器启动过程中修改了sqllog.ini文件。修改之后的文件只要调用过程SP_REFRESH_SVR_LOG_CONFIG() 就会生效。dmrep.ini用于配置复制实例dmllog.ini用于配置逻辑日志dmtimer.ini用于配置定时器用于数据守护中记录异步备库的定时器信息或数据复制中记录异步复制的定时器信息。2.2 控制文件功能控制文件是一个二进制文件它记录了数据库必要的初始信息。1记录数据库的物理结构包含数据库名称、创建时间、字符集等。2记录数据文件和日志文件的信息存储所有数据文件、重做日志文件的名称、路径、状态、大小等信息。数据库启动时实例必须读取控制文件才能找到这些文件并挂载数据库。记录检查点信息记录最新的检查点CKPT信息用于保证数据一致性。3记录归档信息记录当前的归档状态和归档日志序列。4记录备份信息如果使用了RMAN等工具进行备份备份元数据可能会记录在控制文件中。建议多路复用存放在不同的物理磁盘上以防止单点故障导致数据库无法启动。当数据库处于开放OPEN状态时其内容会不断被更新。2.3 数据文件1数据文件存储了所有用户数据和大部分系统数据。2所有表、索引、视图、存储过程等对象的数据最终都物理存储在一个或多个数据文件中。数据文件与逻辑结构的表空间相关联。一个表空间由一个或多个数据文件组成但一个数据文件只能属于一个表空间。注意: 不建议使用单个巨大的数据文件为一个表空间创建多个较小的数据文件是更好的选择。2.4 重做日志(REDO 日志)文件重做日志即 REDO 日志指在 DM 数据库中添加、删除、修改对象或者改变数据DM 都会按照特定的格式将这些操作执行的结果写入到当前的重做日志文件中用于保证数据库的持久性Durability和故障恢复。事务恢复如果数据库发生意外宕机实例重启时会利用重做日志前滚和回滚段回滚来恢复到崩溃前的一致性状态。数据同步在数据守护集群Data Watch中主备库通过传输和应用重做日志来保持数据同步。1每个 DM 数据库实例必须至少有 2 个重做日志文件默认两个日志文件为 DAMENG01.log、DAMENG02.log这两个文件循环使用。2日志文件是循环使用的。当一组日志文件写满后会发生日志切换Log Switch开始写入下一组。如果数据库处于归档模式切换时会触发归档操作。3大小和数量需要合理规划。太小的日志文件会导致频繁切换影响性能。4查看重做日志文件信息:select * from SYS.“V$RLOGFILE” ;2.5 归档日志文件归档日志文件是重做日志文件的历史副本。归档日志文件就是在归档模式下重做日志被连续写入到归档日志后所生成了归档日志文件。1完整恢复允许数据库进行时间点恢复Point-in-Time Recovery。即使数据文件损坏只要有最近的备份和之后的所有归档日志就可以将数据库恢复到任意时间点。2支撑集群与容灾是配置数据守护集群主备库、读写分离集群等高级功能的必要条件因为备库需要通过应用归档日志或实时日志来与主库同步2.6 其他文件:其他文件包括逻辑日志文件 ,物理逻辑日志文件,备份文件,sql日志文件,事件日志文件,数据重演文件。2.7 达梦数据库安装路径内容四、内存结构1 共享内存池共享内存池是数据库在启动时会向服务器申请一大片内存供其他内存池或者缓冲区在不够用时提供调用。减少系统的调用提升数据库的性能。参数MEMORY_POOL 单位Mselect para_name,para_value from vdm_ini where para_name‘MEMORY_POOL’;2 数据缓冲区 数据缓冲区缓存的是数据页。数据缓冲区和共享内存池没有关系通过三条链表来管理数据缓冲区中的数据页。数据缓冲区满淘汰 LRU 链表上很少被使用到的数据页。 数据缓冲区大小设置建议 OLTP:物理内存的 40%-60% OLAP:物理内存的 60%-80% 数据缓冲区类型normal,keep 可以手动管理达梦数据库 keep 的是表空间Fast,recycle 系统自动管理keep 的是临时表、回滚段的信息 参数BUFFER 单位:M select para_name,para_value from vdm_ini where para_name‘BUFFER’;修改数据缓冲区大小为 800Msp_set_para_value(2,‘BUFFER’,800);3 重做日志缓冲区缓存的是重做日志记录的信息单位是页。重做日志缓冲区不够用时会向服务器申请内存。参数RLOG_BUF_SIZE 单位页select para_name,para_value,para_type from vdm_ini where para_name‘RLOG_BUF_SIZE’;4 SQL 缓冲区 缓存的是包执行计划结果集的信息。当 SQL 类别、包比较多应该调整 SQL缓冲区大小。当 SQL 缓冲区不够用时会共享内存池申请内存。 参数CACHE_POOL_SIZE 单位M select para_name,para_value,para_type from vdm_ini where para_name‘CACHE_POOL_SIZE’;5 字典缓冲区缓存的是数据字典的信息。当数据库中有大量的对象或分区表时考虑增加字典缓冲区的大小。当字典缓冲区不够用时会向共享内存池申请内存。参数DICT_BUF_SIZE 单位Mselect para_name,para_value,para_type from v$dm_ini where para_name‘DICT_BUF_SIZE’;五、线程结构1 监听线程监听线程在数据库服务器端监听来自客户端的连接请求。2 IO 线程将磁盘上的数据页加载到数据缓冲区中将数据缓冲区中的脏页在一定机制下数据缓冲区满、执行检查点、数据库正常关闭更新到磁盘上的数据文件中。3 日志刷新线程将重做日志缓冲区中的记录在一定机制事务提交、执行检查点下更新到磁盘上的重做日志文件中。4 日志归档线程数据库开启归档模式后重做日志文件在归当前将重做日志文件的内容拷贝到归档路径下。5 日志重做线程主要用于数据库的实例恢复。6 达梦数据库中的主要线程总结以上为达梦数据库体系结构的基本内容通过学习这些内容可以基本了解达梦数据库的架构为之后更深入的学习打下基础。达梦社区地址https://eco.dameng.com

相关文章:

达梦数据库体系结构学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、数据库与实例概念二、DM 逻辑存储结构三、物理存储结构四、内存结构五、线程结构总结前言 众所周知,信息技术应用创新(信创&#xf…...

出轨小三就会净身出户?告诉你出轨离婚财产分割的5个真相

“我老公出轨了,我要让他净身出户!”这是我在咨询室里听到最多的一句话。每当我无奈地告诉当事人“法律不支持净身出户”时,对方往往难以置信——为什么出轨的人还能分走一半财产?今天,湖南长沙知名婚姻家事律师、高评…...

Windows热键冲突终极指南:Hotkey Detective一键定位占用程序

Windows热键冲突终极指南:Hotkey Detective一键定位占用程序 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你…...

根据“十五五”规划制定的容灾备份体系

在“十五五”规划明确提出推进容灾备份体系建设的背景下,数据中心灾备发展正迎来重要变革:过去,灾备建设多是用户自主选择、行业软性建议,如今,合规收紧、病毒升级、技术迭代三重压力叠加,彻底重构了用户灾…...

Android Navigation 组件全面讲解

目录 一、Navigation 的基本使用 1.1 Navigation 的三大核心概念 1.2 环境配置 1.3 实现步骤详解 第一步:创建 Navigation Graph (XML) 第二步:创建 Activity activity_main.xml : MainActivity.java : 1. 获取导航遥控器…...

嵌入式Web服务器事先,控制开发板硬件(流程概述)

嵌入式 Web 控制硬件:Boa CGI JSON-RPC 完整实现 一、系统架构 开发板(i.MX6ULL)运行: Boa Web 服务器:提供静态页面和 CGI 支持。 RPC 服务端(常驻后台):基于 JSON‑RPC 接收调…...

项目中**LabVIEW 位操作逻辑**的完整、清晰解释,以及与 C# 实现的对应关系

以下是针对项目中LabVIEW 位操作逻辑的完整、清晰解释,以及与 C# 实现的对应关系。 LabVIEW 中关键位操作函数 你的描述(“数字转换成 bool 数组 → 反转一维数组 → 循环检查”)主要涉及以下两个核心 LabVIEW 函数: Number To Boolean Array(数值转布尔数组) 位置:Pr…...

C语言数据类型与变量

一、数据类型1.字符型char2.整形short 【int】intlong 【int】long long 【int】3.浮点型floatdoublelong double4.布尔型(使用需要包含头文件<stdbool.h>)_Bool取值为true或false5.各种数据类型的长度需要用到sizeof操作符sizeof 是⼀个关键字&#xff0c;也是操作符&am…...

专为视障人士设计的免费辅助工具

软件介绍 NVDA是一款免费的屏幕阅读器&#xff0c;专门为视障人士设计。它通过语音合成和盲文显示两种方式&#xff0c;帮助视障人士实现对电脑的无障碍操作&#xff0c;缩小数字鸿沟。 轻量化与基础操作 软件是绿色版&#xff0c;无需安装&#xff0c;双击"nvda.exe&qu…...

元组、列表、集合、字典和切片

列表&#xff08;List&#xff09;列表是可变的有序序列&#xff0c;元素可重复&#xff0c;用方括号 [] 定义。支持增删改查操作。案例fruits ["apple", "banana", "cherry"] fruits.append("orange") # 添加元素 fruits[1] "…...

【教学类-160-14】20260425 AI视频培训-练习014“豆包AI视频《月下枯蔷(哥特风)》+豆包图片风格:油画”

20260425 《014月下枯蔷&#xff08;哥特风&#xff09;》风格&#xff1a;油画背景需求 选了哥特风格故事脚本 豆包故事脚本 只有画面&#xff0c;没有图片关键词、图片转视频动态关键词 内容有点长&#xff0c;我要控制在10秒一个镜头 很好只有10秒一个镜头了。 写一个故事名…...

抖音无水印视频下载终极指南:3分钟掌握免费高清资源获取秘籍

抖音无水印视频下载终极指南&#xff1a;3分钟掌握免费高清资源获取秘籍 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…...

学Simulink——基于Simulink的电池热管理系统(BTMS)多目标优化​

目录 手把手教你学Simulink——基于Simulink的电池热管理系统&#xff08;BTMS&#xff09;多目标优化​ 摘要​ 一、背景与挑战​ 1.1 为什么电池越快充&#xff0c;温差越容易“失控”&#xff1f;​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架…...

DLSS Swapper终极指南:三步实现游戏DLSS智能管理,告别手动替换烦恼

DLSS Swapper终极指南&#xff1a;三步实现游戏DLSS智能管理&#xff0c;告别手动替换烦恼 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾经为了提升游戏帧率&#xff0c;在数十个游戏目录中手动寻找并替换DL…...

Driver Store Explorer:Windows系统驱动管理的终极解决方案

Driver Store Explorer&#xff1a;Windows系统驱动管理的终极解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾为Windows系统盘空间不断减少而烦恼&#xff1f;是否发现…...

基于Simulink的电池热管理系统(BTMS)多目标优化​

目录 手把手教你学Simulink——基于Simulink的电池热管理系统(BTMS)多目标优化​ 摘要​ 一、背景与挑战​ 1.1 为什么电池越快充,温差越容易“失控”?​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架构:从“盲目制冷”到“多目标运筹帷幄”的…...

2026北航计算机学院保研硕士预推免面经

2026年开始北航计算机学院全面取消了夏令营&#xff0c;最终保研的录取资格全由预推免决定。而作为经典的强com院校&#xff0c;北航的预推免延续了前夏令营的节奏&#xff0c;即考核通过才有机会在保研时录取。一、日程9.18 上午报道心理健康测评 下午机试&#xff08;如需要&…...

FAQ 数据库MySQL与SQLite选择与切换

Skeyevss FAQ&#xff1a;数据库 MySQL 与 SQLite 选择与切换 试用安装包下载 | SMS | 在线演示 项目地址&#xff1a;https://github.com/openskeye/go-vss 1. 何时用 SQLite 适合&#xff1a;单机试用、开发本机、小规模验证。优点是无独立数据库进程、部署简单&#xff1…...

工业PHP网关性能瓶颈诊断手册(CPU飙高98%、MQTT丢包率超12%的17个真实故障根因)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;工业PHP网关性能瓶颈诊断手册&#xff08;CPU飙高98%、MQTT丢包率超12%的17个真实故障根因&#xff09; 工业PHP网关常被部署于边缘计算节点&#xff0c;承担协议转换、设备接入与实时数据路由等关键任…...

CaTok:基于因果标记化的图像序列建模新方法

1. 项目概述&#xff1a;重新定义图像序列建模的因果边界在计算机视觉与序列建模的交叉领域&#xff0c;图像标记化&#xff08;Image Tokenization&#xff09;一直是连接像素空间与离散表示的关键桥梁。传统方法如ViT的1616分块策略虽然简单高效&#xff0c;却忽视了图像序列…...

如何用LeagueAkari智能工具集提升英雄联盟游戏效率的完整指南

如何用LeagueAkari智能工具集提升英雄联盟游戏效率的完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基于英雄联盟官…...

【PHP 8.9类型系统终极指南】:Strict Type Enforcement如何将运行时错误拦截在编译前?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PHP 8.9类型系统严格校验的演进与定位 PHP 8.9 并非官方发布的正式版本&#xff08;截至 PHP 官方最新稳定版为 8.3&#xff09;&#xff0c;但作为社区广泛讨论的“假想演进节点”&#xff0c;它承载了…...

量子编译框架QClaw:模块化设计与硬件感知优化实践

1. 项目概述与核心价值最近在量子计算的开源社区里&#xff0c;一个名为QuantumClaw/QClaw的项目引起了我的注意。这个名字本身就很有意思&#xff0c;“Quantum”指向了其核心领域——量子计算&#xff0c;而“Claw”则暗示了某种抓取、操控或接口的能力。简单来说&#xff0c…...

十大Web安全扫描工具

十大Web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web站点上助一臂之力&#xff0c;也就是说在黑客“黑”你之前&#xff0c;先测试一下自己系统中的漏洞。我们在此推荐10大Web漏洞扫描程序&#xff0c;供您参考。 Nikto 这是一个开源的Web服务器扫描程序&#xff0c;它…...

基于炬芯ATS2825音响系统开发

基于炬芯ATS2825音响系统开发...

《每日一命令15:du——深度分析磁盘占用》

本期摘要du 是 Linux 下分析磁盘占用最直接的命令&#xff0c;与 df 互补&#xff1a;df 看分区整体&#xff0c;du 看具体目录/文件。掌握 du -sh&#xff08;汇总目录大小&#xff09;、du -sh *&#xff08;列出子目录&#xff09;、du -h --max-depth1&#xff08;限制深度…...

《100个“反常识”经验15:Nginx 502排查:从应用到内核》

本期摘要502 Bad Gateway 是 Nginx 最让人头疼的错误码之一。它不像 404 那样明确&#xff08;文件不存在&#xff09;&#xff0c;而是表示“上游服务器返回了无效响应”。本文从一次真实故障切入&#xff0c;按“客户端 → Nginx → 应用 → 数据库”的链路分层排查&#xff…...

FastHMR:基于Transformer与扩散模型的高效人体网格恢复

1. 项目背景与核心价值人体网格恢复&#xff08;Human Mesh Recovery&#xff09;是计算机视觉领域的重要研究方向&#xff0c;其目标是从单张RGB图像中重建出具有三维几何信息的人体模型。传统方法通常依赖复杂的优化流程或级联网络&#xff0c;而FastHMR通过融合Transformer架…...

扩散模型文本条件生成机制与调制引导技术解析

1. 扩散模型中的文本条件生成机制解析扩散模型&#xff08;Diffusion Models&#xff09;作为当前生成式AI的核心架构&#xff0c;其文本条件生成能力直接影响着图像/视频生成的质量与可控性。传统实现路径主要依赖两大机制&#xff1a;1.1 注意力机制的核心作用跨注意力层&…...

代码大语言模型训练框架与优化实践

1. 项目概述"代码大语言模型训练框架与优化实践"这个标题背后&#xff0c;隐藏着当前AI领域最炙手可热的技术方向之一。作为一名在AI工程化领域摸爬滚打多年的从业者&#xff0c;我亲眼见证了从早期基于规则的系统到如今百亿参数大模型的演进历程。代码大语言模型&am…...