注册
DM8 备份操作全攻略:DMRMAN 脱机备份工具详解
技术分享/ 文章详情 /

DM8 备份操作全攻略:DMRMAN 脱机备份工具详解

秧秧 2026/08/07 180 0 0

数据库关闭状态下如何安全备份?DMRMAN 帮你搞定一切。

在上一篇文章中,我们介绍了 DM8 的联机备份操作(通过 SQL 语句在数据库运行状态下进行备份)。但生产环境中,还有一种场景同样重要——脱机备份。当数据库需要停机维护,或者联机备份无法满足某些特殊需求时,DMRMAN 就是你的得力助手。

一、DMRMAN 是什么?

DMRMAN,全称 DM RECOVERY MANAGER,是达梦数据库官方配套的**脱机备份还原专用管理工具。**它与 DIsql 不同——DIsql 负责联机操作,而 DMRMAN 专门用于数据库关闭状态下的备份、还原与恢复。
DMRMAN 的核心能力:

  • 脱机数据库完全备份与增量备份
  • 脱机归档备份
  • 脱机数据库还原与恢复
  • 备份集校验、查看与删除

关键区别:联机备份(DIsql)需要在数据库 OPEN 状态下执行,依赖归档日志保证数据一致性;脱机备份(DMRMAN)在数据库关闭后执行,由于不存在数据变更,备份天然就是一致的。

二、备份前的准备工作

2.1 关闭数据库实例

使用 DMRMAN 进行备份前,必须先将数据库实例关闭:

# Linux 系统停止数据库服务
./DmServiceDMSERVER stop

2.2 启动 DMRMAN 工具

进入达梦数据库安装目录的 bin 目录下,执行以下命令启动 DMRMAN:

./dmrman

启动成功后,会进入 RMAN> 交互界面,即可输入各种备份、还原命令。

注意:脱机备份通常需要开启 DmAP 服务,可通过 systemctl start DmAPService 启动。

三、DMRMAN 备份数据库

DMRMAN 支持对数据库进行完全备份和增量备份两种方式。

3.1 完全备份

完全备份会备份数据库中的所有数据。在 DMRMAN 中执行完全备份时,FULL 参数可省略:

RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

命令说明:

  • ‘/opt/dmdbms/data/DAMENG/dm.ini’:数据库配置文件路径,DMRMAN 通过它定位数据库
  • FULL:指定为完全备份(可省略)
  • BACKUPSET ‘/home/dm_bak/db_full_bak_01’:备份集存放路径

3.2 增量备份

增量备份仅备份自上次备份以来发生变化的数据页,备份速度快、占用空间小。在生产环境中,通常采用“每周全量 + 每日增量”的组合策略。
增量备份需要指定基备份集的搜索目录:

RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      INCREMENT WITH BACKUPDIR '/home/dm_bak' 
      BACKUPSET '/home/dm_bak/db_increment_bak_02';

参数说明:

  • INCREMENT:指定为增量备份
  • WITH BACKUPDIR ‘/home/dm_bak’:指定基备份集的搜索目录

提示:脱机备份时,数据库可以配置归档,也可以不配置归档。但若要进行增量备份,需要有可用的基备份集。

四、DMRMAN 备份归档

归档备份用于拷贝指定归档目录下的所有归档文件到备份集中。
备份全部归档:

RMAN> BACKUP ARCHIVE LOG ALL 
      DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      BACKUPSET '/home/dm_bak/arch_all_bak_01';

按 LSN 范围备份归档:

通过设置 LSN(日志序列号)范围,可以精确控制需要备份的归档日志:

RMAN> BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 20000 
      DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      BACKUPSET '/home/dm_bak/arch_range_bak_01';

归档备份的价值在于:归档日志目录通常有大小限制,超过限制会自动删除早期归档。通过对归档日志进行备份,可以让归档日志保存更长时间,从而支持更久远的数据恢复时间点。

五、备份高级特性

5.1 备份加密

对于包含敏感数据的数据库,DM8 支持备份加密功能。以下示例使用密码 “cdb546” 和 RC4 加密算法进行数据库完全备份:

RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      BACKUPSET '/home/dm_bak/db_bak_for_encrypt_04' 
      IDENTIFIED BY "cdb546" 
      WITH ENCRYPTION 2 
      ENCRYPT WITH RC4;

参数说明:

  • IDENTIFIED BY “cdb546”:指定加密密码
  • WITH ENCRYPTION 2:加密强度,默认值为 1(简单加密)
  • ENCRYPT WITH RC4:加密算法,默认为 AES256_CFB

5.2 设置跟踪日志文件

与 DIsql 不同,DMRMAN 不能在备份时直接指定参数生成跟踪文件,需要使用 CONFIGURE 命令事先配置:
步骤1:配置跟踪日志文件

RMAN> CONFIGURE DEFAULT TRACE FILE '/home/dm_trace/trace.log' TRACE LEVEL 2;

步骤2:执行备份

RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' 
      BACKUPSET '/home/dm_bak/db_bak_for_trace_01';

配置完成后,查看 /home/dm_trace/trace.log 文件即可跟踪本次备份的 SBT 接口调用过程。

六、备份管理

6.1 查看备份集信息

RMAN> SHOW BACKUPSET '/home/dm_bak/db_bak_for_show_01';

通过 SHOW BACKUPSET 可以查看备份集的详细信息,包括备份类型、备份时间、LSN 范围等。

6.2 校验备份集

校验备份集可以确认备份文件是否完整、可用:

RMAN> CHECK BACKUPSET 'db_bak_for_check_02' 
      DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';

6.3 删除备份集

删除单个备份集:

RMAN> REMOVE BACKUPSET '/home/dm_bak/db_bak_for_remove_01';

批量删除指定目录下的所有备份集:

RMAN> REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak';

批量删除指定时间之前的备份集:

RMAN> REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak' 
      UNTIL TIME '2015-11-01 00:00:00';

注意:删除备份集时,如果对应目录只有该文件,将同步删除此目录。基备份集不能被删除。

七、总结

DMRMAN 作为达梦数据库的脱机备份利器,具备以下核心优势:

  1. 无需归档:脱机备份不需要配置归档,降低了备份的门槛
  2. 数据一致性好:数据库关闭状态下备份,天然一致,无需依赖归档日志恢复
  3. 功能完整:支持完全备份、增量备份、归档备份,以及备份集的查看、校验、删除等全生命周期管理
  4. 安全可控:支持备份加密、跟踪日志等高级特性

实践建议:

  • 日常备份:建议以联机备份为主,减少停机时间
  • 定期脱机全备:可结合停机维护窗口,定期使用 DMRMAN 做一次完整的脱机全量备份
  • 备份文件隔离:无论联机还是脱机备份,都不应将备份集与源数据库存放在同一磁盘或存储介质上
    数据无价,备份先行。掌握好 DMRMAN 这把“冷备利器”,你的 DM8 数据库就多了一重坚实的安全保障。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服