.log 文件,循环使用。BIGINT 类型,自动递增、全局唯一,每个 LSN 代表一个物理事务(ptx)。| LSN 类型 | 含义 |
|---|---|
| CUR_LSN | 系统已分配的最大 LSN。 |
| FLUSH_LSN | 已发起刷盘请求、但未真正写入联机日志的最大 LSN。 |
| FILE_LSN | 已写入联机日志文件的最大 LSN。 |
| CKPT_LSN | 检查点 LSN:所有 LSN ≤ CKPT_LSN 的修改页都已刷盘。故障重启时从 CKPT_LSN+1 开始重做日志。 |
| APPLY_LSN | 还原恢复后已写入联机日志的原始最大 LSN(取自源库)。 |
| RPKG_LSN | 还原恢复后已经重演日志的最大 LSN。 |
| 序号类型 | 含义 |
|---|---|
| CUR_SEQ | 系统已分配的最大全局包序号(写入联机日志前分配)。 |
| FILE_SEQ | 已写入联机日志文件的最大全局包序号。 |
| APPLY_SEQ | 还原恢复后已写入联机日志的原始最大全局包序号。 |
| RPKG_SEQ | 还原恢复后已经重演日志的最大全局包序号。 |
dm.ini 中的 CKPT_FLUSH_RATE / CKPT_FLUSH_PAGES 控制每次刷脏页数量,大多数情况下触发,且 DDL/DML 可正常执行。| 概念 | 说明 |
|---|---|
| 表空间 | 逻辑存储单元。系统自动创建SYSTEM、ROLL、RLOG、MAIN、TEMP;支持用户自定义。 |
| 数据文件 | 物理存储文件(.DBF)。TEMP表空间不支持物理备份还原。 |
| 重做日志 | 记录所有物理页修改(REDO),用于故障恢复。 |
| 归档日志 | 系统在归档模式下运行更安全。联机备份必须开启本地归档。 |
| LSN | 全局唯一、递增的日志序列号,代表一个物理事务。 |
| 检查点 | 将内存脏页写入磁盘,并调整CKPT_LSN,释放日志空间。 |
| 备份集 | 一次完整备份的产物:包含备份片(.bak) + 元数据文件(.meta)。 |
| 分类维度 | 类型 | 关键点 |
|---|---|---|
| 数据库状态 | 联机备份 | 数据库运行中执行,最常用,必须开启归档。 |
| 脱机备份 | 数据库关闭后执行(用DMRMAN),异常关闭的库需先修复归档。 | |
| 内容粒度 | 数据备份 | 包含库备份、表空间备份、表备份。 |
| 归档日志备份 | 仅备份归档日志,不包含数据文件。 | |
| 数据完整性 | 一致性备份 | 包含完整数据+REDO日志,可恢复至备份时状态。 |
| 非一致性备份 | 只含数据(如指定WITHOUT LOG),还原后需借助归档恢复。 | |
| 数据量 | 完全备份 | 备份全部有效数据页。 |
| 增量备份 | 基于基备份,只备份修改的页。分为差异增量(基可是完全或增量)和累积增量(基只能是完全)。表备份和归档备份不支持增量。 |
联机备份过程中,用户可以正常访问、修改数据库,为了准确记录备份过程中产生了哪些 REDO 日志,确定日志备份范围,我们特别定义了下述几个包序号和 LSN:
为了保证备份的完整性和有效性,必须包含的归档日志起始 LSN 值。BEGIN_LSN = 备份开始时检查点偏移前一个 RLOG_PKG 的 max_lsn。
BEGIN_SEQ 记录了 BEGIN_LSN 所在 Redo 日志包的序号。
为了保证备份的完整性和有效性,必须包含归档日志结束 LSN 值。END_LSN = 备份结束时 FILE_LSN。
END_SEQ 记录了 END_LSN 所在 REDO 日志包的序号。
备份结束时,可以保证事务一致性的全局备份结束 LSN。单节点 BAK_END_LSN 等于 END_LSN;DSC 集群环境中,每个节点的 END_LSN 都不相同,BAK_END_LSN 大于等于最大的 END_LSN。
如果 BEGIN_SEQ 等于 END_SEQ,则表明备份过程中,该节点没有任何数据被修改。为了简化还原过程,增量备份时要求 BEGIN_LSN 必须大于等于基准备份的 END_LSN,如果不满足条件,则强制生成检查点,直到 BEGIN_LSN 满足条件为止。
| 还原类型 | 支持状态 | 说明 |
|---|---|---|
| 库还原 | 脱机 | 从库备份集还原整个数据库。 |
| 表空间还原 | 脱机 | 从表空间或库备份集还原,目标不能是TEMP。 |
| 表还原 | 联机 | 从表备份集还原,同时重建索引、约束。 |
| 归档日志还原 | 联机/脱机 | 将归档备份集中的日志恢复到指定目录。 |
| 增量还原 | 依赖基备份 | 若基备份集被删除,则增量备份集无法单独还原。 |
| 备份类型 | 步骤 | 恢复子步骤 |
|---|---|---|
| 库备份 | 备份 → 还原 | 恢复一致性 + 更新DB_MAGIC |
| 表空间备份 | 备份 → 还原 | 仅恢复一致性 |
| 表备份 | 备份 → 还原 | 无(仅数据还原) |
| 归档备份 | 备份 → 还原 | 无(仅数据还原) |
DMAP(Dameng Auxiliary Process)是达梦数据库的辅助进程,是一个关键的守护进程,主要负责备份还原相关的支持工作。
DmAPService(Linux)或 DmAPService.exe(Windows)bin 子目录下| 功能 | 说明 |
|---|---|
| 备份辅助 | 作为备份还原任务的执行插件,负责读写备份片文件和元数据文件 |
| 加密压缩 | 大幅提升备份过程中加密、压缩的处理效率 |
| 并行处理 | 支持指定并行度,可多线程同时执行备份任务 |
| 第三方存储 | 支持第三方备份存储介质(如磁带库、专业备份软件) |
| 备份集访问 | 所有访问备份集的操作(备份、还原、校验、查看视图)都需要DMAP支持 |
达梦数据库提供两种备份还原实现策略,通过参数控制:
| 策略 | 参数值 | 特点 | 前提条件 |
|---|---|---|---|
| DMAP辅助进程方式 | bak_use_ap=1(联机) use_ap=1(脱机) | 支持第三方备份,效率高,支持并行 | 必须启动DMAP服务 |
| 无辅助进程方式 | bak_use_ap=2(联机) use_ap=2(脱机) | 不依赖DMAP,由主进程执行 | 不支持第三方备份 |
https://eco.dameng.com
文章
阅读量
获赞
