点击上方蓝字关注我吧!
增量备份是在某个特定基备份集基础上,收集新修改的数据页进行备份,可以有效减少备份集的空间占用、提高备份速度。本次我们来介绍DM8数据库的增量备份。
增量备份
DM8增量备份分为差异增量备份和累积增量备份,缺省为差异增量备份。差异增量备份的基备份集可以是增量备份集也可以是全量备份集,可以是冷备的备份集,也可以是热备的备份集。累积增量备份的备份集只能是全量备份的备份集。
这里以联机热备方式为例(联机备份需保证数据库已开启并配置归档,此处步骤略),对数据库进行增量备份。在增量备份之前,我们首先要做一次全备,使用SYSDBA用户登录数据库,执行如下语句全量备份数据库:
SQL> backup database full backupset '/dm8/backup/fullbak_20200316';
1、差异增量备份
SQL> backup database increment backupset '/dm8/backup/incr/incrbak_20200317_1';
SQL> backup database increment backupset '/dm8/backup/incr/incrbak_20200317_2';
如果执行中报如下错误[-8036]:无基备份或无匹配基备份,是因为系统在数据库的默认备份路径或当前指定的备份集路径的上层目录找不到基备份集:
数据库默认备份路径在系统参数BAK_PATH中配置,该参数为只读参数,只能通过修改dm.ini配置文件来修改此参数。
也可以使用with backupdir关键字来指定基备份集的搜索目录:
SQL> backup database increment with backupdir '/dm8/backup' backupset '/dm8/backup/incr/incrbak_20200317_1';
SQL> backup database increment with backupdir '/dm8/backup' backupset '/dm8/backup/incr/incrbak_20200317_2';
使用DMRMAN工具查看增量备份集信息,可以看到第一个差异增量备份的基备份集是全量备份集fullbak_20200316,第二个备份集的基备份集是第一次的差异增量备份集incrbak_20200317_1:
RMAN> show backupset '/dm8/backup/incr/incrbak_20200317_1';
RMAN> show backupset '/dm8/backup/incr/incrbak_20200317_2';
指定关键字cumulative可以进行累积增量备份,使用如下命令进行累积增量备份:
SQL> backup database increment cumulative with backupdir '/dm8/backup' backupset '/dm8/backup/incr/incrbak_20200317_3';
使用show backupset命令查看备份集,可以看到该备份集的基备份集是第一次全量备份的备份集fullbak_20200316。
使用增量备份恢复数据库
下面演示使用增量备份集恢复数据库,恢复之前,需保证待恢复的目标库为关闭状态。
执行如下命令停止数据库:
[dmdba@localhost bin]$ DmServiceDMTESTSERVER stop
使用restore命令还原数据库,如果增量备份基备份集不在数据库默认备份路径或者指定的备份集路径的上层目录,则会报错[-8036]:无基备份或无匹配基备份:
此时可以使用with backupdir关键字指定基备份集搜索目录(指定基备份集的上层目录):
RMAN> restore database '/dm8/data/DMTEST/dm.ini' from backupset '/dm8/backup/incr/incrbak_20200317_2' with backupdir '/dm8/backup';
数据库还原之后,正常使用备份集或者归档恢复数据库,并更新数据库魔数即可。
RMAN> recover database '/dm8/data/DMTEST/dm.ini' from backupset '/dm8/backup/incr/incrbak_20200317_2';
RMAN> recover database '/dm8/data/DMTEST/dm.ini' update db_magic;
累积增量备份集与差异增量备份集还原和恢复数据库方式无差异:
总结
1、 DM数据库默认增量备份方式为差异增量备份。差异增量备份的基备份集可以是增量备份集也可以是全量备份集,累积增量备份的备份集只能是全量备份的备份集。
2、 如果不指定备份集搜索目录,数据库默认在指定备份集的上级目录和数据库默认备份路径下找最新的备份集作为基备份集。差异增量备份取所有备份集中最新的备份集作为基备份集(包含全量和增量),累积增量备份取最新的全量备份集。
3、 使用差异增量备份集还原数据库时,基备份集和基备份集依赖的备份集都不能丢失(比如差异增量备份集D基于增量备份集C,C基于增量备份B, B基于全量备份A,则A、B、C备份集都不能丢失),否则将无法完成恢复,报错[-8036]:无基备份或无匹配基备份。累积增量备份的备份集只需要基础全量备份集完整即可。
往期回顾
干货攻略 丨修改表空间数据文件位置
干货攻略丨Oracle通过ODBC创建DBLINK连接DM
内容丨程青
编辑丨王
校对丨青城