数据库关闭状态下如何安全备份?DMRMAN 帮你搞定一切。
在上一篇文章中,我们介绍了 DM8 的联机备份操作(通过 SQL 语句在数据库运行状态下进行备份)。但生产环境中,还有一种场景同样重要——脱机备份。当数据库需要停机维护,或者联机备份无法满足某些特殊需求时,DMRMAN 就是你的得力助手。
DMRMAN,全称 DM RECOVERY MANAGER,是达梦数据库官方配套的**脱机备份还原专用管理工具。**它与 DIsql 不同——DIsql 负责联机操作,而 DMRMAN 专门用于数据库关闭状态下的备份、还原与恢复。
DMRMAN 的核心能力:
关键区别:联机备份(DIsql)需要在数据库 OPEN 状态下执行,依赖归档日志保证数据一致性;脱机备份(DMRMAN)在数据库关闭后执行,由于不存在数据变更,备份天然就是一致的。
使用 DMRMAN 进行备份前,必须先将数据库实例关闭:
# Linux 系统停止数据库服务
./DmServiceDMSERVER stop
进入达梦数据库安装目录的 bin 目录下,执行以下命令启动 DMRMAN:
./dmrman
启动成功后,会进入 RMAN> 交互界面,即可输入各种备份、还原命令。
注意:脱机备份通常需要开启 DmAP 服务,可通过 systemctl start DmAPService 启动。
DMRMAN 支持对数据库进行完全备份和增量备份两种方式。
完全备份会备份数据库中的所有数据。在 DMRMAN 中执行完全备份时,FULL 参数可省略:
RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'
FULL BACKUPSET '/home/dm_bak/db_full_bak_01';
命令说明:
增量备份仅备份自上次备份以来发生变化的数据页,备份速度快、占用空间小。在生产环境中,通常采用“每周全量 + 每日增量”的组合策略。
增量备份需要指定基备份集的搜索目录:
RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'
INCREMENT WITH BACKUPDIR '/home/dm_bak'
BACKUPSET '/home/dm_bak/db_increment_bak_02';
参数说明:
提示:脱机备份时,数据库可以配置归档,也可以不配置归档。但若要进行增量备份,需要有可用的基备份集。
归档备份用于拷贝指定归档目录下的所有归档文件到备份集中。
备份全部归档:
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';
归档备份的价值在于:归档日志目录通常有大小限制,超过限制会自动删除早期归档。通过对归档日志进行备份,可以让归档日志保存更长时间,从而支持更久远的数据恢复时间点。
对于包含敏感数据的数据库,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;
参数说明:
与 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 接口调用过程。
RMAN> SHOW BACKUPSET '/home/dm_bak/db_bak_for_show_01';
通过 SHOW BACKUPSET 可以查看备份集的详细信息,包括备份类型、备份时间、LSN 范围等。
校验备份集可以确认备份文件是否完整、可用:
RMAN> CHECK BACKUPSET 'db_bak_for_check_02'
DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';
删除单个备份集:
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 作为达梦数据库的脱机备份利器,具备以下核心优势:
实践建议:
文章
阅读量
获赞
