全库备份 + 增量备份集还原
这里的增量还原指通过增量备份集进行数据还原操作。在使用增量备份集进行数据库还原的前提是已对数据库进行全库备份。因为增量还原过程中隐含一个完全还原操作。选择增量备份还原时,直接选择最后一个增量备份集进行还原即可,数据库会自动从最早一个全库备份寻找开始还原。如果增量备份集的基备份集被删除了,那么单独使用这个增量备份集是无法进行还原操作的。
例如,数据库在使用全库 + 增量备份集进行数据库还原时,会先对数据库进行全库备份(在备份之前需要设置好归档)产生完全备份集 A,当对数据库进行相关操作(增删改)之后,依次进行增量备份并产生增量备份集 B、C、D。当使用增量备份集进行数据库还原时,可以直接使用最后一个增量备份集 D 进行还原操作,最终完成整个数据库还原过程。
创建表并插入一条数据➡全库备份➡插入数据并增量备份➡再次插入数据并增量备份➡查看备份集➡还原➡查看数据
注意1.使用增量备份集进行还原时,增量备份集的基备份集不能被删除。
2.进行增量备份还原,需要将该增量备份之前完整的全库备份及增量备份都进行拷贝。
1 创建表并插入一条数据
#创建表table01
create table table01(ID int);
#插入数据
insert into table01 values(2401);
#提交
commit;
#查看表
select * from table01;
2 全库备份
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/data/DMTEST/arch, TYPE=LOCAL, FILE_SIZE=512, SPACE_LIMIT=4096';
ALTER DATABASE OPEN;
backup database full backupset '/dmdata/dmbak_test01' compressed level 1;
3 插入数据并增量备份
insert into table01 values(2402);
backup database increment with backupdir '/dmdata/dmbak_test01/dmbak_test01.bak' backupset '/dmdata/dmbak_test01/dmbak_test01_incre01';
4 再次插入数据并增量备份
insert into table01 values (2403);
backup database increment with backupdir '/dmdata/dmbak_test01/dmbak_test01.bak' backupset '/dmdata/dmbak_test01/dmbak_test01_incre02';
5 查看备份集
cd /dmdata/dmbak_test01/
ls
6 还原
#这里可以先删除增量备份的内容,等下进行验证
delete from table01 where id = 2402;
delete from table01 where id = 2403;
执行如下步骤:
check backupset '/dmdata/dmbak_test01/dmbak_test01_incre02';
RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak_test01/dmbak_test01_incre02';
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak_test01/dmbak_test01_incre02';
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC;
注意
当备份集为脱机备份即备份过程中无日志生成,那么此时还原后的数据库中数据与备份时数据状态一致。在不需要重做归档日志恢复数据的情况下,可以直接更新 DB_MAGIC 完成数据库恢复操作。