love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

MogDB学习笔记系列之 — 如何利用BRM备份做表级恢复

MogDB作为云和恩墨基于OpenGauss内核的商业发行版,在此基础之上做了大量的Bug修复和功能增强,目前以及应用在大量客户生产环境中。上一篇文章我们简单研究了MogDB的后台线程,这里我们来看下如何进行备份恢复。

首先opengauss原生的备份工具gs_probackup,使用起来相对负责,因此我们基于gs_probackup做了一些封装和简化,简称BRM。

这里我们简单来测试一下如何使用BRM恢复工具,如下:

1、首先创建一个测试库表

2、通过BRM进行数据库全备份

这里我省略了2个步骤,分别的add-server和add instance的注册过程,大家测试过程中brm –help即可,使用非常简单。

3、查看备份集信息

从上述信息来看,我们可以看到opengauss内核是基于PostgreSQL 9.2.4的。其中-b 选项分别可以指定full 和ptrack 。表示全备

和增量备份。备份完成后,可以通过brm show-backup查看备份集信息。

4、测试表插入数据模拟增量数据

 

5、进行增量备份

这里需要注意的是,在进行增量备份之前,需要设置enable_cbm_tracking=on(将参数加入到postgresql.conf). 否则在进行增量备份的时候,会提示需要设置该参数并备份失败。增量备份完成后,我们再看下备份情况:

6、模拟误删除test1122测试表

7、通过备份恢复到临时目录

这里我将备份恢复到/tmp目录。注意我这里直接指定的是最新增量备份集的backup ID。MogDB在进行恢复过程中会自动恢复,包括进行xlog恢复,将库恢复到最新状态。当然在实际恢复过程中,建议做基于时间点的恢复。

 

8、创建表空间并将恢复的文件cp到数据目录下

在MogDB数据库中,直接将恢复的文件复制早数据目录中,是无法访问识别的,因为数据字典无法识别。

因此这里我们来手工构造一个表结构一样的空表即可。

9、更新一下数据字典

 

可以看到,我们删除的表已经被成功恢复了。当然这里我们模拟的是知道表结构的情况下,如果不知道表结构,就比较麻烦了。

所以对于表结构还是需要定期信息备份。最佳方案还是做好数据库容灾,或者考虑云和恩墨ZDBM 实时备份解决方案。

PS:MogDB在后面版本会增加flashback table功能,尽情期待!

 

Leave a Reply

You must be logged in to post a comment.