浅聊达梦数据库物理热备的概念及原理

达梦数据库(DM Database)的物理热备份,核心是在数据库不中断业务(联机) 的前提下,通过对数据库物理文件(如数据文件、控制文件、日志文件等)的增量或全量复制,实现数据备份的技术方案。其原理本质上基于**“一致性快照”+“重做日志(Redo Log)实时追踪”** 两大核心技术,同时结合达梦自研的存储引擎机制,确保备份过程中数据的完整性与业务连续性。

一、核心技术基石:达梦存储引擎的“页级管理”

要理解物理热备份,首先需要明确达梦数据库的底层存储逻辑——其数据以**“数据页(Data Page)”** 为基本单位存储(默认页大小为8KB/16KB/32KB,可配置),所有表、索引等数据最终都映射为磁盘上的物理页文件(.dbf格式)。
物理热备份的本质是对“数据页”的复制,但需解决一个关键问题:备份过程中数据库仍在写入,如何避免复制的“半脏页”(即页数据未完全写入就被备份)?
这就需要“一致性快照”技术来解决。

二、核心原理1:一致性快照(Consistent Snapshot)

达梦物理热备份的第一步,是创建一个数据库的一致性快照,确保备份的所有数据页都对应“同一时间点”的状态,避免数据不一致。其实现逻辑如下:

  1. 触发快照点:当用户发起热备份命令(如 BACKUP DATABASE)时,数据库首先记录当前的系统全局事务号(SCN,System Change Number) ——SCN是达梦用于标记数据版本的全局唯一序号,每发生一次数据修改,SCN都会递增。
  2. 冻结“脏页刷盘”规则:达梦的缓冲池(Buffer Pool)中会缓存近期访问的数据页,修改后的数据先存于“脏页”(未刷盘的修改页)。创建快照后,数据库会对“快照点之前的脏页”执行一次强制刷盘(确保快照点前的修改都落地到物理文件),同时对“快照点之后的新脏页”标记为“不参与当前备份”——新修改的页不会被备份,而是通过后续的重做日志补充。
  3. 生成“快照映射表”:快照创建后,数据库会生成一个“快照页映射表”,记录快照点时所有数据页的物理位置(磁盘地址)。后续备份进程只需根据该映射表,逐一复制对应位置的物理页,即可得到“快照点时刻的一致性数据副本”。

三、核心原理2:重做日志(Redo Log)的实时追踪与补充

一致性快照解决了“备份起点的一致性”,但备份过程可能持续数分钟甚至数小时,期间数据库仍在处理业务(产生新的修改)。为了让最终的备份集包含“快照点到备份结束”的所有数据,达梦引入了重做日志实时追踪技术:

  1. 重做日志的作用:达梦数据库会将所有数据修改操作(INSERT/UPDATE/DELETE等)实时写入“重做日志文件”(.log格式,默认双日志文件循环写入),用于崩溃恢复(Crash Recovery)和备份补充。
  2. 备份期间的日志追踪:在热备份启动后,数据库会启动一个日志追踪进程,实时监控并复制“快照点SCN之后生成的所有重做日志”(包括当前正在写入的日志文件和后续切换的日志文件)。
  3. 备份集的完整性:最终的物理热备份集包含两部分:
    • 快照点时刻的“一致性数据页副本”(全量或增量,取决于备份类型);
    • 快照点到备份结束期间的“增量重做日志片段”。
      恢复时,只需先恢复数据页副本到快照点状态,再通过重做日志片段“重演”后续修改,即可将数据恢复到“备份结束时刻”的完整状态。

四、关键技术特性:支持“增量热备份”的底层逻辑

达梦物理热备份不仅支持全量(备份所有数据页),还支持增量(仅备份“上一次备份后修改过的数据页”),其实现依赖**“页修改标记(Page Dirty Flag)”** 技术:

  1. 每次数据库启动或完成一次全量/增量备份后,达梦会初始化一个“页修改追踪表”;
  2. 当数据页被修改时,数据库会在“页修改追踪表”中标记该页的“修改状态”(如标记页的物理地址和修改时间);
  3. 执行增量热备份时,备份进程只需扫描“页修改追踪表”,仅复制“标记为修改过的数据页”,同时追踪对应期间的重做日志,大幅减少备份量和时间。

总结:物理热备份的技术核心链路

graph LR
A[发起热备份命令] --> B[记录当前SCN,创建一致性快照]
B --> C[强制刷盘快照点前的脏页]
C --> D[复制快照点的一致性数据页(全量/增量)]
D --> E[实时追踪并复制快照点后的重做日志]
E --> F[生成包含“数据页+重做日志”的备份集]

本质上,达梦物理热备份是通过**“SCN快照确保起点一致”+“重做日志追踪确保增量完整”+“页级管理实现高效复制”** 的技术组合,在不中断业务的前提下,实现了物理文件级的可靠备份,兼顾了备份效率、数据完整性和业务连续性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94793.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 中 ::(作用域解析运算符)的用途

C 中 ::(作用域解析运算符)的应用场景详解 在 C 中,:: 被称为 作用域解析运算符(Scope Resolution Operator),用于明确指定某个名字(变量、函数、类型等)所属的命名空间或类作用域&a…

鸿蒙中CPU活动分析:CPU分析

1 CPU分析的核心概念与重要性 CPU活动分析(CPU Profiling)是性能优化的核心手段,它通过测量代码执行时间,帮助开发者定位性能瓶颈。应用的响应速度直接影响用户体验,过长的加载时间或卡顿会导致用户流失 1.1 为什么C…

十大经典 Java 算法解析与应用

在 Java 开发的世界里,算法就如同构建大厦的基石,它们支撑着各种复杂应用的高效运行。无论是处理海量数据的排序,还是在庞大结构中精准查找信息,合适的算法都能大幅提升程序的性能。接下来,我们将深入解析十大经典的 J…

从感知机到大模型:神经网络的全景解析与实践指南

从感知机到大模型:神经网络的全景解析与实践指南在当今 AI 时代,我们身边的每一个智能应用 —— 从手机里的人脸识别、语音助手,到聊天机器人 ChatGPT、图像生成工具 MidJourney,再到自动驾驶的环境感知系统 —— 背后都离不开一个…

核心篇(下):Transformer 架构详解(程序员视角・实战版)

在上一篇 NLP 预处理文章中,你已经掌握了 “文本→向量” 的转化流程,解决了 DashScope Tokenizer 的调用问题。但此时你可能会问:“这些向量输入模型后,大模型是如何理解长文本语义的?比如‘小明告诉小红,…

FreeRTOS学习笔记(四):任务执行与切换

第一部分:FreeRTOS 任务是如何执行的? FreeRTOS 是一个抢占式的实时操作系统内核。其任务执行遵循一个核心原则:调度器(Scheduler)总是选择当前处于“就绪态”(Ready)的最高优先级任务来运行。 …

区块链技术探索与应用:从密码学奇迹到产业变革引擎

🌟 Hello,我是蒋星熠Jaxonic! 🌈 在浩瀚无垠的技术宇宙中,我是一名执着的星际旅人,用代码绘制探索的轨迹。 🚀 每一个算法都是我点燃的推进器,每一行代码都是我航行的星图。 &#x…

如何监控和调优JVM的内存使用情况?

监控和调优 JVM 内存使用是保障 Java 应用稳定性和性能的核心手段,需要结合监控工具、关键指标分析和针对性调优策略。以下是具体的实施方法:一、JVM 内存监控:工具与核心指标监控的目标是掌握内存使用趋势、GC 行为、线程状态等,…

把用户输进来的明文密码做一层 MD5 哈希

这一行干的就是:把用户输进来的明文密码先做一层 MD5 哈希,再把得到的 32 位十六进制字符串存到变量 password 里。 逐段拆开:password.getBytes() 把字符串转成字节数组,MD5 算法只能对字节/字节数组做运算。DigestUtils.md5Dige…

jeecg-boot3.7.0对接钉钉登录(OAuth2.0)

当前的jeecg-boot 是3.7.0前端问题:1.前端的路由vue-router的版本需要固定死。要不然会报page_not_found router the same.这种奇奇怪怪的问题。 就是把package.json的“^”,这个符号,删掉。(或者全局搜索,这个page no…

【C#】获取不重复的编码(递增,非GUID)

获取不重复的编码:从原始实现到高效优化本文针对软件开发中“为新对象分配唯一编码”的常见需求,以C#通信设备管理场景为例,从原始代码分析入手,逐步讲解基于LINQ和哈希集合的优化方案,帮助开发者理解不同场景下的最佳…

腾讯云人脸库技术架构深度解析

腾讯云人脸库技术架构深度解析人脸库是现代人脸识别系统的核心组件,负责海量人脸特征的高效存储、检索和管理。腾讯云在人脸库设计上采用了多项创新技术,本文将深入探讨其技术实现细节。一、人脸库核心架构腾讯云人脸库采用分层架构设计:应用…

Transformer图解指南:Attention机制动画演示

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 Self-Attention矩阵运算 位置编码可视化 读者收获:理解大模型基石架构 Attenti…

工业网络安全:保护制造系统和数据

近年来,制造业数字化转型加速推进。自动化生产线、智能工厂和工业物联网设备已深度融入日常运营。这些进步在提升效率的同时,也暴露出新的安全漏洞。因此,工业网络安全已成为全球制造商的首要任务之一。与主要保护办公系统和客户数据库的传统…

【RAGFlow代码详解-9】文档解析和 OCR

系统概述 文档解析和 OCR 系统提供多格式文档支持,并具有基于视觉的分析功能。它由几个关键组件组成: DeepDoc 视觉系统 :用于布局分析、表格检测和 OCR 的高级计算机视觉模型多格式解析器 :支持 PDF、DOCX、Excel、Markdown、HTM…

元宇宙与医疗健康:重构诊疗体验与健康管理模式

1 元宇宙重塑医疗诊疗核心流程1.1 远程诊疗:从 “平面沟通” 到 “沉浸式问诊”元宇宙打破远程诊疗的空间限制,将传统 “视频通话式问诊” 升级为 “沉浸式多维度交互”。在基础问诊环节,医生的数字分身可通过 AR 技术 “进入” 患者家中&…

C6.1:发射极偏置放大器

基极偏置放大器的Q点不稳定,但是学习后了解了放大器的基本运行逻辑,发射极偏置放大器则是适合大规模应用,VDB和TSEB都具有稳定的Q点。讲发射极偏置,首先要讲旁路电容,前文的耦合电容和旁路电容类似,都是直流…

lanczos算法中的基向量V的存储流程

我的问题是:这里提到的,为什么会增加V的列向量?V是怎么储存的呢? 这个问题触及了Lanczos算法实现的核心细节。 🧠 为什么会增加V的列向量? 因为Lanczos算法是一个迭代过程,它从一个初始向量开始…

Linux操作系统——TCP服务端并发模型

TCP:建立连接,一对一要实现多任务并发,就引出了并发模型一、多进程与多线程1.在相同资源情况下,进程资源开销大,但其安全性高2.线程相对于进程资源开销小,且并发量比进程大①多进程并发基础代码#include &l…

Ubuntu 22.04 插入光驱后磁盘满启动故障clean, ...files, ...blocks

硬件环境 设备型号:机械革命 Yilong15Pro Series GM5HG0A操作系统:Ubuntu 22.04.5 LTS (Jammy Jellyfish)内核版本:6.8.0-65-generic 问题经过 初始症状 连接外置光驱后,系统出现异常: 风扇持续高速运转,噪…