Halo Tech

HaloDB物理备份恢复利器-RMAN

HaloDB RMAN备份恢复工具简介:

    RMAN(Recovery Manager)是易景科技自研的用于HaloDB的物理备份和恢复操作的工具。它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。RMAN特有的优势是跳过未使用的数据块。当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块。另外, RMAN使用二进制压缩模式,能够最大程度地压缩数据块中的一些典型数据。

  以下是RMAN对HaloDB执行全量备份恢复和增量备份恢复的测试。

前提和约束:

  • 数据库已正常运行

  • 备份信息已初始化

  • 数据库运行在归档模式下,并能正常归档

参数设置:

  • 设置归档

  • 模式主要涉及 2 个系统参数:

archive_mode设置为onarchive_command

归档命令。即复制 WAL 日志的命令。简单的命令可参考:test ! -f /data/halo/archivedir/%f && cp %p /data/halo/archivedir/%f

Image

  • 重启生效

pg_ctl restart
  • 创建归档日志目录

su - rootmkdir -p /data/halo/archivedirchown halo:halo /data/halo/archivedir
  • 设置一个目录来存放备份文件,该目录需要进行初始化操作:

su - rootmkdir -p /data/halo_backupchown halo:halo /data/halo_backupvi /home/halo/.bash_profile ---配置环境变量export BACKUP_PATH=/data/halo_backup

Image

source /home/halo/.bash_profile

  • 重载

su - halorman init

Image

--建测试表,并插入数据

CREATE TABLE TEST(a int);INSERT INTO TEST VALUES(3);
  • 进行全量备份恢复测试

1) 进行全量备份测试并验证备份有效性

rman backup -b full -d halo0rootrman validaterman show detail

Image

备份成功且验证为有效状态。

2) 进行全量恢复操作

3) 停止数据库

pg_ctl stop

4) 移除原数据目录,模拟数据库损坏

Image

5) 执行恢复操作

rman restore -A /data/halo/archivedir

Image

6) 启动数据库

pg_ctl start

7) 验证测试数据

Image

恢复完成。

  • 进行增量备份恢复测试

su – halo
  • 1) 重新初始化rman

rman init

Image

2)2)建测试表,并插入数据

CREATE TABLE TEST(a int);INSERT INTO TEST VALUES(3);

Image

3)进行全量备份,并验证备份有效性

rman backup -b full -d halo0root -A/data/halo/archivedirrman validaterman show detail

Image

4) 再插入一条测试数据

INSERT INTO TEST VALUES(3);Select * from test;

Image

5) 进行增备份,并验证备份有效性

rman backup -b incremental -d halo0root -A /data/halo/archivedirrman validaterman show detail

Image

6) 进行增量恢复操作

停止数据库

pg_ctl stop

7) 移除原数据目录,模拟数据库损坏

Image

8) 执行增量恢复操作

先恢复全量备份rman restore --backup-mode=full-A/data/halo/archivedir

Image

再恢复增量备份rman restore--backup-mode=incremental -A /data/halo/archivedir

Image

9)启动数据库,验证恢复结果

pg_ctl startpsqlselect * from test;

Image

10) 恢复数据成功

以上是RMAN备份恢复工具对HaloDB进行的备份恢复测试展示,如果您感兴趣,欢迎下载HaloDB数据库软件使用,还有更多高级功能(不完全恢复,基于时间点的恢复等)等你挖掘体验。