DM8数据库增量备份和恢复

Posted yangeoooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DM8数据库增量备份和恢复相关的知识,希望对你有一定的参考价值。

一。增量备份

DM8增量备份分为差异增量备份和累积增量备份,缺省为差异增量备份。差异增量备份的基备份集可以是增量备份集也可以是全量备份集,可以是冷备的备份集,也可以是热备的备份集。累积增量备份的备份集只能是全量备份的备份集。

这里以联机热备方式为例(联机备份需保证数据库已开启并配置归档,此处步骤略),对数据库进行增量备份。在增量备份之前,我们首先要做一次全备,使用SYSDBA用户登录数据库,执行如下语句全量备份数据库:

 SQL> BACKUP DATABASE FULL BACKUPSET '/home/dmdba/db_full_bak_01';

1、差异增量备份

使用increment关键字可以进行增量备份,默认为差异增量备份,执行如下语句进行差异增量备份,这里做两次增量备份:

BACKUP DATABASE FULL BACKUPSET '/home/dmdba/db_full_bak_01';


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配置文件来修改此参数。

SQL> select para_value,para_type from v$dm_ini t where para_name = 'BAK_PATH';

行号       PARA_VALUE                PARA_TYPE
---------- ------------------------- ---------
1          /dm8/data/5236/dm5236/bak READ ONLY

也可以使用with backupdir关键字来指定基备份集的搜索目录:

SQL> backup database increment with backupdir '/home/dmdba/db_full_bak_01' backupset '/dm8/backup/incr/incrbak_20200317_1';
SQL> backup database increment with backupdir '/home/dmdba/db_full_bak_01' 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';


2、累积增量备份

指定关键字cumulative可以进行累积增量备份,使用如下命令进行累积增量备份:

SQL> backup database increment cumulative with backupdir '/home/dmdba/db_full_bak_01' backupset '/dm8/backup/incr/incrbak_20200317_3';
RMAN> show backupset '/dm8/backup/incr/incrbak_20200317_3';

二、使用增量备份恢复数据库

下面演示使用增量备份集恢复数据库,恢复之前,需保证待恢复的目标库为关闭状态。
执行如下命令停止数据库:
[dmdba@localhost bin]$ DmServiceDMTESTSERVER stop

RMAN> restore database ‘/dm8/data/5236/dm5236/dm.ini’ from backupset ‘/dm8/backup/incr/incrbak_20200317_2’ with backupdir ‘/home/dmdba/db_full_bak_01’;

数据库还原之后,正常使用备份集或者归档恢复数据库,并更新数据库魔数即可。
RMAN> recover database ‘/dm8/data/5236/dm5236/dm.ini’ from backupset ‘/dm8/backup/incr/incrbak_20200317_2’;
RMAN> recover database ‘/dm8/data/5236/dm5236/dm.ini’ update db_magic;

三。总结

1、DM数据库默认增量备份方式为差异增量备份。差异增量备份的基备份集可以是增量备份集也可以是全量备份集,累积增量备份的备份集只能是全量备份的备份集。
2、如果不指定备份集搜索目录,数据库默认在指定备份集的上级目录和数据库默认备份路径下找最新的备份集作为基备份集。差异增量备份取所有备份集中最新的备份集作为基备份集(包含全量和增量),累积增量备份取最新的全量备份集。
3、使用差异增量备份集还原数据库时,基备份集和基备份集依赖的备份集都不能丢失(比如差异增量备份集D基于增量备份集C,C基于增量备份B, B基于全量备份A,则A、B、C备份集都不能丢失),否则将无法完成恢复,报错[-8036]:无基备份或无匹配基备份。累积增量备份的备份集只需要基础全量备份集完整即可。

以上是关于DM8数据库增量备份和恢复的主要内容,如果未能解决你的问题,请参考以下文章

在rman增量备份中,有差异增量和累积增量的概念

DM8备份恢复实战

如何进行MongoDB自动备份增量备份和恢复

MySQL增量备份恢复和基于时间点与位置的恢复

MySQL 完全备份 + 增量备份+完全恢复

MySQL第五天(增量备份和增量恢复)