1 备份与还原的概念和意义
备份的主要目的是用于后备支援,替补使用,是数据容灾的基础,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态,保护数据免受意外的损失,保证数据的安全性。还原与恢复的主要目的是将目标数据库恢复到备份结束时刻的状态。
2 备份的种类
1、数据库备份可分为物理备份和逻辑备份其中物理备份是指从数据库文件中拷贝有效的数据页保存到备份集。逻辑备份是指导出表结构,数据的insert语句等。2、根据数据库的运行状态, 物理备份又分为联机备份和脱机备份。联机备份,也称热备,数据库运行状态下备份;脱机备份,也称冷备,指数据库关闭状态下的备份。3、根据备份的完整性, 物理备份又分为完全备份和增量备份。完全备份是指拷贝所有有效数据页,包含指定数据库和表空间所有数据; 增量备份是在基备份集基础上拷贝修改的数据页 。4、增量备份包含累积增量备份和差异增量备份。累积增量备份的基础备份是全备的备份集。而差异增量备份的备份集可以是增量备份,也可以是全备。
3 备份还原的使用场景
- 人为操作造成某些数据丢失或误删除。
- 软件BUG 造成数据或全部丢失。
- 硬件故障造成数据部分或全部丢失。
- 安全漏洞被入侵导致数据被恶意破坏。
4 备份
4.1 物理备份
4.1.1 联机备份
联机备份需要开归档,需要打开DmAPService服务。
支持库备份、表空间备份、表备份、归档备份。
- 库备份
//默认数据库备份,
SQL> backup DATABASE;
操作已执行
已用时间: 00:00:02.994. 执行号:3100.
//联机全量备份
SQL> backup DATABASE full to FULLBAK02 BACKUPSET '/dm8/backup/FULLBAK02';
操作已执行
已用时间: 00:00:02.939. 执行号:3101.
//联机增量备份(默认为差异增量备份)
SQL> backup DATABASE increment to INCRBAK02 BACKUPSET '/dm8/backup/INCRBAK02';
操作已执行
已用时间: 00:00:06.660. 执行号:3102.
//联机增量备份(累计增量备份)
SQL> backup DATABASE increment cumulative to INCRBAK05 BACKUPSET '/dm8/backup/INCRBAK06';
操作已执行
已用时间: 00:00:02.951. 执行号:3200.
数据库操作步骤:右击备份中的库备份,点击创建备份,填写备份名和备份目录,选择备份类型,点击确定。(创建完成后刷新还是库备份目录下还是看不到刚刚的备份,因为需要指定工作目录才能在库备份目录下显示出来。)
- 表空间备份
backup tablespace tbs to TBSFULLBAK01 backupset '/dm8/backup/TBSFULLBAK01';
- 表备份
backup table t_emp to EMPBAK backupset '/dm8/backup/EMPBAK';
- 归档备份
backup ARCHIVE LOG ALL to ARCHFULLBAK backupset '/dm8/backup/ARCHFULLBAK';
4.2 脱机备份
需要关闭数据库。
4.2.1 命令行方式
[dmdba@localhost FULLBAK01]$ which dmrman
/dm8/bin/dmrman
[dmdba@localhost FULLBAK01]$ cd /dm8/bin
[dmdba@localhost bin]$ dmrman
dmrman V8
RMAN> backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK03 backupset
'/dm8/backup/FULLBAK03';
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK03 backupset
'/dm8/backup/FULLBAK03';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[1350184], file_lsn[1350184]
Processing backupset /dm8/backup/FULLBAK03
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.603
RMAN>
show 查看备份集
show backupset '/dm8/backup/FULLBAK03';
remove 删除备份集
remove backupset '/dm8/backup/FULLBAK03';
check 检查备份集
check backupset '/dm8/backup/FULLBAK03';
4.2.2 图形化方式(使用DM控制台工具)
5 还原与恢复
5.1 表空间的还原与恢复
5.1.1 关闭数据库
在root用户下可以使用systemctl stop DmServiceDMSERVER.service命令。
[dmdba@localhost TBS]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
5.1.2 还原表空间
[dmdba@localhost TBS]$ dmrman
dmrman V8
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace tbs from backupset
'/dm8/backup/FULLBAK01';
restore database '/dm8/data/DAMENG/dm.ini' tablespace tbs from backupset
'/dm8/backup/FULLBAK01';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[1353641], file_lsn[1353641]
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.666
5.1.3 恢复表空间
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace tbs;
recover database '/dm8/data/DAMENG/dm.ini' tablespace tbs;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[1353641], file_lsn[1353641]
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully.
time used: 566.197(ms)
RMAN>
5.2 数据库的还原与恢复
5.2.1 关闭数据库
5.2.2 数据库还原
[dmdba@localhost DAMENG]$ dmrman
dmrman V8
RMAN> recover database '/dm8restore database '/dm8/data/DAMENG/dm.ini' from backupset
'/dm8/backup/FULLBAK01';
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/FULLBAK01';
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.694
5.2.3 数据库恢复
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[1355203], file_lsn[1355203]
recover successfully!
time used: 00:00:01.087
5.2.4 更新数据库魔术
select permanent_magic; --197173148 数据库永久魔数,一旦生成,不会变化
select db_magic; -- 1125316970 数据库魔数,每经过还原与恢复,都会更新一次。