注册
达梦数据库物理备份还原
培训园地/ 文章详情 /

达梦数据库物理备份还原

好好先生 2026/01/04 76 0 0

达梦数据库物理备份还原

1.DM8备份还原介绍

物理备份是找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具,把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。
1.1.常用备份类型
image.png
1.2.核心操作
image.png
1.3.企业级常用备份方案
image.png
在实际生产环境中,企业常采用分层备份策略,通过全备+增备+日志备份分层组合的方式,实现极小时间粒度的备份,最大限度保障系统的数据安全性。

2.备份还原实战
在实际环境中,我们经常会遇到在生产库进行备份,然后还原到异机目标库用于提取被误删除的数据或进行测试的场景,后面的实战基于这一场景进行。
image.png

2.1.全量备份还原
原库新建test_1222表,并插入5条测试数据。
image.png
2.1.1.全备原库
SQL> backup database;
image.png
会自动在备份目录下生成一个备份集,备份目录根据dm.ini参数BAK_PATH设置
image.png
image.png
2.1.2.将备份文件传输到目标库
[dmdba@localhost bak]$ scp -r ./DB_DMDB_FULL_20251222_113437_561695/ 192.168.236.23:/dm/data/DMDB/bak/
image.png
2.1.3.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
image.png
再进行还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
image.png
恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
image.png
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
image.png
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
image.png
image.png
恢复成功。

2.2.增量备份还原
2.2.1.原库全备
SQL> backup database;
image.png
image.png
原库插入新测试数据
image.png
2.2.2.原库增备
SQL> BACKUP DATABASE INCREMENT;
image.png
image.png
2.2.3.将备份文件传输到目标库
全备文件
[root@localhost bak]# scp -r ./DB_DMDB_FULL_20251228_220400_608335/ 192.168.236.23:/dm/data/DMDB/bak/
image.png
增备文件
[root@localhost bak]# scp -r ./DB_DMDB_INCREMENT_20251228_221532_328451/ 192.168.236.23:/dm/data/DMDB/bak/
image.png
将全备文件和增备文件放在一起
增量恢复需要将全备和要恢复的时间点之间的所有增量备份的备份集放在同一目录下。
如果是差异增量(BACKUP DATABASE INCREMENT),这期间的所有差异增量都要放在一起;
如果是累积增量(BACKUP DATABASE INCREMENT CUMULATIVE),就只需一个全量+最后一个增量。
image.png
2.2.4.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
image.png
还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
image.png
恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
image.png
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
image.png
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
image.png
image.png
恢复成功。

2.3.日志备份还原
2.3.1.原库全备
SQL> backup database;
image.png
image.png
原库插入新测试数据
image.png
image.png
2.3.2.备份日志
将最近日志归档
image.png
将归档日志进行备份
(生产上日志过多,可指定时间段进行备份)
SQL>backup archive log time between '2025-12-28 22:46:00' and '2025-12-28 23:06:00';
image.png
image.png
2.3.3.将全备和归档日志备份传输到目标端
全备文件
[root@localhost bak]# scp -r ./DB_DMDB_FULL_20251228_224607_955027/ 192.168.236.23:/dm/data/DMDB/bak/
image.png
归档备份文件
[root@localhost bak]# scp -r ./ARCH_DMDB_FULL_20251228_231009_900600/ 192.168.236.23:/dm/data/DMDB/bak/
image.png

2.3.4.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset 'DB_DMDB_FULL_20251228_224607_955027'
image.png

RMAN>check backupset 'ARCH_DMDB_FULL_20251228_231009_900600'
image.png

还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset 'DB_DMDB_FULL_20251228_224607_955027'
image.png
还原归档
RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET 'ARCH_DMDB_FULL_20251228_231009_900600' to ARCHIVEDIR '/dm/data/DMDB/bak/arch'
image.png
会在对应目录下生成归档
image.png

用生成的归档进行恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' with archivedir '/dm/data/DMDB/bak/arch'
image.png
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
image.png
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
image.png
image.png
恢复成功。

3.结语
有效备份被称为避免信息系统灾难的“最后一道防线”,它在数据保护体系中承担着终极恢复手段的角色。当其他所有安全措施(如防火墙、入侵检测、冗余设计等)失效时,备份是唯一能将系统从彻底崩溃或数据永久丢失中挽救回来的关键机制。做好数据库备份是守护数据安全的重要措施,也是每一位DBA的必备技能。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服