数据是业务核心资产,硬件损坏、误删表、逻辑故障、勒索病毒等场景都会造成数据丢失,备份 + 归档 + 恢复是达梦数据库保障数据安全的核心解决方案。本文完整梳理 DM8 物理备份、逻辑备份底层原理、常用操作、归档配置、集群备份方案与避坑要点,覆盖运维日常绝大多数场景。
很多运维容易混淆三个名词,三者流程不可逆、作用完全不同:
关键底层:LSN 日志序列号(备份恢复核心标识)
LSN 是全局自增唯一编号,每一次数据页修改、事务提交都会生成对应 LSN,4 个核心 LSN 决定备份日志范围:
备份日志区间规则
配套核心日志组件
检查点 Checkpoint
自动 / 手动触发,按修改顺序将内存脏页刷入磁盘,同步更新CKPT_LSN、释放联机日志可复用空间;日志切换、手动CHECKPOINT(10)都会触发,括号代表刷写 10% 脏数据。
直接拷贝数据库底层数据文件、日志文件,速度快、支持增量,适合整库损坏、磁盘故障恢复。
1. 四种划分维度
2. 备份集组成
DMAP 进程独立承担 IO、压缩、加密,不占用 dmserver 资源:
3. 加密与压缩规则
4. 工具区分
(二)逻辑备份(dexp/dimp,迁移、误删表专用)
导出表、视图、存储过程等逻辑对象,生成.dmp文件,不依赖底层数据文件,适合:跨库迁移、单表误删恢复、版本升级迁移,不支持增量。
dexp 导出双层并行优化
dimp 导入高速装载 FAST_LOAD
三、高频实操 SQL:日常备份命令合集
BACKUP DATABASE FULL BACKUPSET '/dm_bak/full_20260810'
COMPRESSED LEVEL 5 PARALLEL 8 WITHOUT LOG;
-- 加密备份示例
BACKUP DATABASE BACKUPSET '/dm_bak/full_enc'
IDENTIFIED BY "Admin@123" WITH ENCRYPTION 2 ENCRYPT WITH AES256_CFB;
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm_bak'
BACKUPSET '/dm_bak/inc_01' PARALLEL 4;
BACKUP TABLESPACE MAIN BACKUPSET '/dm_bak/ts_main';
BACKUP TABLE USER.TAB_BACKUP BACKUPSET '/dm_bak/tab_tab01';
BACKUP ARCHIVE LOG ALL BACKUPSET '/dm_bak/arch_all';
-- 指定LSN区间备份归档
BACKUP ARCHIVELOG LSN BETWEEN 10000 AND 20000 BACKUPSET '/dm_bak/arch_lsn';
BACKUP DATABASE FULL DDL_CLONE BACKUPSET '/dm_bak/ddl_only';
场景 1:单表误删
-- 1. 校验备份集合法性
SELECT SF_BAKSET_CHECK('DISK','/dm_bak/tab_tab01');
-- 2. 先还原表结构(避免索引冲突)
RESTORE TABLE USER.TAB_BACKUP STRUCT FROM BACKUPSET '/dm_bak/tab_tab01';
-- 3. 还原表数据
RESTORE TABLE USER.TAB_BACKUP FROM BACKUPSET '/dm_bak/tab_tab01';
场景 2:整库磁盘损坏(DMRMAN 脱机完整流程)
# 1. 校验备份
CHECK BACKUPSET '/dm_bak/full_20260810';
# 2. 还原数据文件
RESTORE DATABASE /dmdata/dm.ini FROM BACKUPSET '/dm_bak/full_20260810';
# 方案A:恢复到备份完成时刻(使用备份内置日志)
RECOVER DATABASE /dmdata/dm.ini FROM BACKUPSET '/dm_bak/full_20260810';
# 方案B:恢复到故障前最新状态/指定时间点(本地归档)
RECOVER DATABASE /dmdata/dm.ini WITH ARCHIVEDIR '/dm_arch' UNTIL TIME '2026-08-10 14:00:00';
# 收尾:更新数据库魔数,完成恢复
RECOVER DATABASE /dmdata/dm.ini UPDATE DB_MAGIC;
场景 3:DMDSC 集群备份恢复
1. 集群联机备份(任意节点执行)
BACKUP DATABASE BACKUPSET /dm_bak/dsc_full;
2. 集群脱机恢复(指定 dcr 集群配置文件)
RESTORE DATABASE /rac01/dm.ini DCR_INI=/dmdata/dmdcr.ini FROM BACKUPSET '/dm_bak/dsc_full';
RECOVER DATABASE /rac01/dm.ini FROM BACKUPSET '/dm_bak/dsc_full';
RECOVER DATABASE /rac01/dm.ini UPDATE DB_MAGIC;
常用系统函数 & 动态视图
V$BACKUPSET、V$BACKUPSET_DBF、V$BACKUPSET_ARCHDMRMAN 备份管理
# 查看备份详情
SHOW BACKUPSET '/dm_bak/full_20260810';
# 批量清理30天前备份
REMOVE BACKUPSETS WITH BACKUPDIR '/dm_bak' UNTIL TIME '2026-07-10';
运维规范建议
高频故障坑点
https://eco.dameng.com
文章
阅读量
获赞
