暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

HaloDB物理备份恢复利器-RMAN

Halo Tech 2024-11-04
152

HaloDB RMAN备份恢复工具简介:

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

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

前提和约束:

  •  数据库已正常运行

  •  备份信息已初始化

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


参数设置:

  • 设置归档

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

    archive_mode
    设置为on
    archive_command

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

    • 重启生效

      pg_ctl restart

      • 创建归档日志目录

        su - root
        mkdir -p data/halo/archivedir
        chown halo:halo data/halo/archivedir

        • 设置一个目录来存放备份文件,该目录需要进行初始化操作:

          su - root
          mkdir -p data/halo_backup
          chown halo:halo data/halo_backup
          vi /home/halo/.bash_profile ---配置环境变量
          export BACKUP_PATH=/data/halo_backup

          source home/halo/.bash_profile

          • 重载

            su - halo
            rman init

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

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


              • 进行全量备份恢复测试

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

                rman backup -b full -d halo0root
                rman validate
                rman show detail

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

                2) 进行全量恢复操作

                3) 停止数据库

                  pg_ctl stop


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


                  5) 执行恢复操作

                    rman restore -A data/halo/archivedir


                    6) 启动数据库

                      pg_ctl start


                      7) 验证测试数据

                      恢复完成。

                      • 进行增量备份恢复测试

                        su – halo

                        • 1) 重新初始化rman

                          rman init


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

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


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

                              rman backup -b full -d halo0root -A
                              /data/halo/archivedir
                              rman validate
                              rman show detail


                              4) 再插入一条测试数据

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


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

                                  rman backup -b incremental -d halo0root -A /data/halo/archivedir
                                  rman validate
                                  rman show detail


                                  6) 进行增量恢复操作

                                  停止数据库

                                    pg_ctl stop

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


                                    8) 执行增量恢复操作

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

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


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

                                          pg_ctl start
                                          psql
                                          select * from test;


                                          10) 恢复数据成功

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

                                          文章转载自Halo Tech,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                          评论