1.DM8备份还原介绍
物理备份是找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具,把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。
1.1.常用备份类型
1.2.核心操作
1.3.企业级常用备份方案
在实际生产环境中,企业常采用分层备份策略,通过全备+增备+日志备份分层组合的方式,实现极小时间粒度的备份,最大限度保障系统的数据安全性。
2.备份还原实战
在实际环境中,我们经常会遇到在生产库进行备份,然后还原到异机目标库用于提取被误删除的数据或进行测试的场景,后面的实战基于这一场景进行。
2.1.全量备份还原
原库新建test_1222表,并插入5条测试数据。
2.1.1.全备原库
SQL> backup database;
会自动在备份目录下生成一个备份集,备份目录根据dm.ini参数BAK_PATH设置
2.1.2.将备份文件传输到目标库
[dmdba@localhost bak]$ scp -r ./DB_DMDB_FULL_20251222_113437_561695/ 192.168.236.23:/dm/data/DMDB/bak/
2.1.3.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
再进行还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_FULL_20251222_113437_561695'
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
恢复成功。
2.2.增量备份还原
2.2.1.原库全备
SQL> backup database;
原库插入新测试数据
2.2.2.原库增备
SQL> BACKUP DATABASE INCREMENT;
2.2.3.将备份文件传输到目标库
全备文件
[root@localhost bak]# scp -r ./DB_DMDB_FULL_20251228_220400_608335/ 192.168.236.23:/dm/data/DMDB/bak/
增备文件
[root@localhost bak]# scp -r ./DB_DMDB_INCREMENT_20251228_221532_328451/ 192.168.236.23:/dm/data/DMDB/bak/
将全备文件和增备文件放在一起
增量恢复需要将全备和要恢复的时间点之间的所有增量备份的备份集放在同一目录下。
如果是差异增量(BACKUP DATABASE INCREMENT),这期间的所有差异增量都要放在一起;
如果是累积增量(BACKUP DATABASE INCREMENT CUMULATIVE),就只需一个全量+最后一个增量。
2.2.4.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' from backupset '/dm/data/DMDB/bak/DB_DMDB_INCREMENT_20251228_221532_328451'
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
恢复成功。
2.3.日志备份还原
2.3.1.原库全备
SQL> backup database;
原库插入新测试数据
2.3.2.备份日志
将最近日志归档
将归档日志进行备份
(生产上日志过多,可指定时间段进行备份)
SQL>backup archive log time between '2025-12-28 22:46:00' and '2025-12-28 23:06:00';
2.3.3.将全备和归档日志备份传输到目标端
全备文件
[root@localhost bak]# scp -r ./DB_DMDB_FULL_20251228_224607_955027/ 192.168.236.23:/dm/data/DMDB/bak/
归档备份文件
[root@localhost bak]# scp -r ./ARCH_DMDB_FULL_20251228_231009_900600/ 192.168.236.23:/dm/data/DMDB/bak/
2.3.4.目标库还原恢复
先对传输过来的备份集做一个校验,确认没有损坏
RMAN> check backupset 'DB_DMDB_FULL_20251228_224607_955027'
RMAN>check backupset 'ARCH_DMDB_FULL_20251228_231009_900600'
还原
注意:此时目标库不能在运行状态
RMAN> restore database '/dm/data/DMDB/dm.ini' from backupset 'DB_DMDB_FULL_20251228_224607_955027'
还原归档
RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET 'ARCH_DMDB_FULL_20251228_231009_900600' to ARCHIVEDIR '/dm/data/DMDB/bak/arch'
会在对应目录下生成归档
用生成的归档进行恢复
RMAN> recover database '/dm/data/DMDB/dm.ini' with archivedir '/dm/data/DMDB/bak/arch'
更新db_magic
RMAN> recover database '/dm/data/DMDB/dm.ini' update db_magic
开库查询恢复的数据
[dmdba@localhost ~]$ DmServiceDMDBSVR start
恢复成功。
3.结语
有效备份被称为避免信息系统灾难的“最后一道防线”,它在数据保护体系中承担着终极恢复手段的角色。当其他所有安全措施(如防火墙、入侵检测、冗余设计等)失效时,备份是唯一能将系统从彻底崩溃或数据永久丢失中挽救回来的关键机制。做好数据库备份是守护数据安全的重要措施,也是每一位DBA的必备技能。
文章
阅读量
获赞
