注册
达梦数据库DM8备份与还原
培训园地/ 文章详情 /

达梦数据库DM8备份与还原

火星撞🌏 2023/01/17 1525 2 0

DM 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对某个数据文件页的读写操作。

DM 支持通过联机执行 SQL 语句方式对数据库执行备份还原操作。联机方式支持数据库、用户表空间、用户表和归档的备份,用户表的还原。在进行联机库级备份、归档备份和表空间备份时,必须保证系统处于归档模式,否则联机备份不能进行。

1、差异增量备份

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

SQL> backup database increment backupset '/dmbak/incr/incrbak_20221013_1';
SQL> backup database increment backupset '/dmbak/incr/incrbak_20221013_2';

如果执行中报如下错误[-8036]:无基备份或无匹配基备份,是因为系统在数据库的默认备份路径或当前指定的备份集路径的上层目录找不到基备份集:

SQL> backup database increment backupset '/dmbak/incr/incrbak_20221013_1'; backup database increment backupset '/dmbak/incr/incrbak_20221013_1'; [-8036]:无基备份或无匹配基备份

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

SQL> backup database increment with backupdir '/dmbak/' backupset '/dmbak/incr/incrbak_20221019_1'; 操作已执行
SQL> backup database increment with backupdir '/dmbak/' backupset '/dmbak/incr/incrbak_20221019_2'; 操作已执行

2、累积增量备份

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

SQL> BACKUP database increment cumulative with backupdir '/dmbak/'backupset '/dmbak/incr/incebak_20221019_3'; 操作已执行

3、使用差异增量备份集恢复数据库,恢复之前,需保证待恢复的目标库为关闭状态。
使用restore命令还原数据库,如果增量备份基备份集不在数据库默认备份路径或者指定的备份集路径的上层目录,则会报错[-8036]:无基备份或无匹配基备份:

[dmdba@localhost bin]$ ./dmrman dmrman V8 RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2'; restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2'; file dm.key not found, use default license! [-8036]:无基备份或无匹配基备份

此时可以使用with backupdir关键字指定基备份集搜索目录(指定基备份集的上层目录):

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2' with backupdir '/dmbak/'; restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2' with backupdir '/dmbak/'; 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.805

数据库还原之后,正常使用备份集或者归档恢复数据库

RMAN> recover database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2'; recover database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/incr/incrbak_20221019_2'; 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[53422], file_lsn[53422] [Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00] recover successfully! time used: 00:00:02.523

更新数据库魔数

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic; recover database '/dmdata/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[53436], file_lsn[53436] recover successfully! time used: 00:00:01.067

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

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服