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

OB 社区版 4.1 备份恢复实践

1282

概述

OceanBase 数据库 V4.1.0 版本支持 OSS、NFS 两种备份介质,提供了备份、恢复、清理三大功能。不管是社区版还是企业版,备份恢复功能应该是一致的。

由于企业版 4.1 没有对外发布,所以本文分享的是 社区版 4.1 的备份恢复实践。

 

跟 3.2 版本相比, 4.1 版本在备份方面最大的变化就是支持租户级别的物理备份。备份策略依然是支持数据全量备份、增量备份和事务日志备份(即归档)。备份目录有些变化,这个以后再专门分析。

 

本次实践是将一个单副本架构的 OB 社区版集群里的业务租户备份,并还原到历史时间点。新租户就在当前 OB 集群中(也可以在其他独立的 OB 集群中)。OB 租户还原不支持覆盖形式恢复,可以恢复出新名字的租户。如果需要替换原租户,可以通过租户重命名的方式。

 

备份介质准备

OB 的备份目前支持 NFS 和 云盘 OSS 。这个参考文章:OB 企业版 3.2 备份恢复实践 (qq.com) ,这里就不再重复了。

 

OB 集群手动备份

 

本文演示的是 OB 社区版 5.7.25-OceanBase_CE-v4.1.0.0 。

OB 4.1 版本支持租户级别的备份,所以备份参数设置也改为租户级别了。

此外,加上 4.1 版本支持日志流(Log stream)设计,租户的事务日志也是独立的。所以事务日志备份也要按租户粒度开启。

 

配置 OB 事务日志备份参数

  • 配置租户备份目录

备份目录依然是通过参数  LOG_ARCHIVE_DEST
配置。

 

如果是在 SYS 租户里设置业务租户的备份目录,需要加上生效范围  TENANT = obmysql

    [root@server066 ~]$mysql -h10.0.0.66 -uroot@sys#obcedemo -P2883 -paaAA11__ -c -A oceanbase(root@10.0.0.66:2883) [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///backup/obbackup/' TENANT = obmysql;ERROR 9080 (HY000): the format file does not exist under the destination(root@10.0.0.66:2883) [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///backup/obcebackup/obmysql' TENANT = obmysql;Query OK, 0 rows affected (0.55 sec)

    如果是在业务租户里,就可以直接设置。

      [root@server066 ~]$mysql -h10.0.0.66 -uroot@obmysql#obcedemo -P2883 -paaAA11__ -c -A testALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///backup/obcebackup/obmysq

      l' ;

       

      上面第一次设置备份目录,报错信息官网有解释,这个设计跟之前的备份逻辑有所变化。目录不为空时会检查是否有 Format 文件(设置过备份目录为当前目录)。

        ERROR 9080 (HY000) : the format file does not exist under the destination
        OceanBase 错误码:9080
        错误原因:备份目的端的 Format 文件不存在。原因如下:
        目的端在参与备份任务前,Format 文件被移除。
        设置的目的端非空,且目的端下没有 Format 文件。
        解决方式:检查备份目的端的 Format 文件是否存在,如果不存在,则此目的端已失效

        。设置新的目的端时,需要将目的端的文件都清空后,再加入备份。

         

        设置后,OB 会在备份目录生成一个  format
        文件,用于校验备份目录的有效性。

         

          [root@server066 obmysql]$ls -lrth backup/obcebackup/obmysql/
          total 8.0K
          drwx------. 2 nfsnobody nfsnobody 4.0K Jun 13 2023 check_file
          -rw-------. 1 nfsnobody nfsnobody 141 Jun 13 2023 format.obbak

           

          LOG_ARCHIVE_DEST
          有多个属性,其中  LOCATION
          是必填的,指定备份目录。BINDING
          属性是可选的,默认值是  Optional
          模式,另外一种值是  Mandatory
          模式。选哪个取决于在事务日志备份速度赶不上事务日志生成速度时,是备份重要还是业务可用性重要。如果是备份重要,OB 会减慢或者挂起租户的事务;如果是业务可用性重要,事务日志可能被回收导致日志归档断流,从而导致备份链路设计出现缺口,影响恢复的能力。

           

          • 配置归档目的端状态

          通常第一次设置归档目的端后,状态都是  ENABLE
          状态。后期也可以通过参数  LOG_ARCHIVE_DEST_STATE
          暂停这个归档目录。这个应该是参考 ORACLE 设计。也许将来还会支持多个归档路径。

           

            ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE='DEFER';

             

            • 查看日志归档参数。

            租户日志归档参数查看租户下的视图。

              SELECT * FROM DBA_OB_ARCHIVE_DEST ;

              DEST_NO
              NAME
              VALUE
              0
              binding
              OPTIONAL
              0
              dest_id
              1004
              0
              lag_target
              2m
              0
              path
              file:///backup/obcebackup/obmysql
              0
              piece_switch_interval
              1d
              0
              state
              ENABLE

              在 SYS 租户则查看视图  CDB_OB_ARCHIVE_DEST

               

              发起事务日志备份(归档)

              可以在 SYS 租户里发起所有租户的事务日志归档,也可以指定某个租户的事务日志归档。该命令对后期创建的租户不会生效(即使租户删除重建)。

               

                ALTER SYSTEM ARCHIVELOG TENANT = obmysql ;

                 

                也可以登录业务租户发起该租户的事务日志归档。

                 

                  ALTER SYSTEM ARCHIVELOG ;

                   

                  • 查看租户的事务日志归档状态

                  查看租户视图  DBA_OB_TENANTS

                   

                    SELECT TENANT_ID , TENANT_NAME , TENANT_TYPE , COMPATIBILITY_MODE ,status, IN_RECYCLEBIN , TENANT_ROLE , LOG_MODE FROM DBA_OB_TENANTS t;

                    业务租户结果:

                    TENANT_ID
                    TENANT_NAME
                    TENANT_TYPE
                    COMPATIBILITY_MODE
                    status
                    TENANT_ROLE
                    LOG_MODE
                    1,004
                    obmysql
                    USER
                    MYSQL
                    NORMAL
                    PRIMARY
                    ARCHIVELOG

                    SYS 租户结果:

                    TENANT_ID
                    TENANT_NAME
                    TENANT_TYPE
                    COMPATIBILITY_MODE
                    status
                    TENANT_ROLE
                    LOG_MODE
                    1
                    sys
                    SYS
                    MYSQL
                    NORMAL
                    PRIMARY
                    NOARCHIVELOG
                    1,001
                    META$1002
                    META
                    MYSQL
                    NORMAL
                    PRIMARY
                    NOARCHIVELOG
                    1,002
                    ocp
                    USER
                    MYSQL
                    NORMAL
                    PRIMARY
                    NOARCHIVELOG
                    1,003
                    META$1004
                    META
                    MYSQL
                    NORMAL
                    PRIMARY
                    NOARCHIVELOG
                    1,004
                    obmysql
                    USER
                    MYSQL
                    NORMAL
                    PRIMARY
                    ARCHIVELOG
                    • 关闭事务日志归档

                     

                    关闭事务日志归档用  NOARCHIVELOG
                    命令,跟前面一样,可以在 SYS 租户和业务租户执行。

                     

                      ALTER SYSTEM NOARCHIVELOG TENANT = obmysql ;

                       

                      • 查看事务日志归档文件 Pieces 信息。

                      在 SYS 租户下查看视图  CDB_OB_ARCHIVELOG_PIECE_FILES
                      , 在业务租户下查看视图  DBA_OB_ARCHIVELOG_PIECE_FILES

                       

                        SELECT dest_id, ROUND_ID ,PIECE_ID ,INCARNATION ,DEST_NO ,status, COMPRESSION ,INPUT_BYTES_DISPLAY ,OUTPUT_BYTES_DISPLAY ,COMPRESSION_RATIO ,FILE_STATUS ,PATH
                        FROM oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES ;

                        dest_id
                        ROUND_ID
                        PIECE_ID
                        INCARNATION
                        DEST_NO
                        status
                        COMPRESSION
                        INPUT_BYTES_DISPLAY
                        OUTPUT_BYTES_DISPLAY
                        COMPRESSION_RATIO
                        FILE_STATUS
                        PATH
                        1,004
                        1
                        1
                        1
                        0
                        ACTIVE
                        none
                        57.72MB
                        57.72MB
                        1
                        AVAILABLE
                        file:///backup/obcebackup/obmysql

                          SELECT TENANT_ID ,DEST_ID ,ROUND_ID ,PIECE_ID ,INCARNATION ,DEST_no,STATUS ,COMPRESSION ,INPUT_BYTES_DISPLAY ,OUTPUT_BYTES_DISPLAY ,COMPRESSION_RATIO ,FILE_STATUS ,path
                          FROM oceanbase.CDB_OB_ARCHIVELOG_PIECE_FILES ;

                          TENANT_ID
                          DEST_ID
                          ROUND_ID
                          PIECE_ID
                          INCARNATION
                          DEST_no
                          STATUS
                          COMPRESSION
                          INPUT_BYTES_DISPLAY
                          OUTPUT_BYTES_DISPLAY
                          COMPRESSION_RATIO
                          FILE_STATUS
                          path
                          1,004
                          1,004
                          1
                          1
                          1
                          0
                          ACTIVE
                          none
                          58.63MB
                          58.63MB
                          1
                          AVAILABLE
                          file:///backup/obcebackup/obmysql

                           

                          • 查看事务日志归档进度信息。

                          在 SYS 租户下查看视图  CDB_OB_ARCHIVE_LOG
                          , 在业务租户下查看视图  DBA_OB_ARCHIVE_LOG

                           

                            SELECT DEST_ID ,ROUND_ID ,INCARNATION ,DEST_NO ,STATUS ,BASE_PIECE_ID ,USED_PIECE_ID ,INPUT_BYTES_DISPLAY ,OUTPUT_BYTES_DISPLAY ,COMPRESSION ,COMPRESSION_RATIO ,COMMENT , `PATH`
                            FROM oceanbase.DBA_OB_ARCHIVELOG ;

                            DEST_ID
                            ROUND_ID
                            INCARNATION
                            DEST_NO
                            STATUS
                            BASE_PIECE_ID
                            USED_PIECE_ID
                            INPUT_BYTES_DISPLAY
                            OUTPUT_BYTES_DISPLAY
                            COMPRESSION
                            COMPRESSION_RATIO
                            COMMENT
                            PATH
                            1,004
                            1
                            1
                            0
                            DOING
                            1
                            1
                            59.66MB
                            59.66MB
                            none
                            1

                            file:///backup/obcebackup/obmysql

                              SELECT TENANT_ID ,DEST_ID ,ROUND_ID ,INCARNATION ,DEST_NO ,STATUS ,BASE_PIECE_ID ,USED_PIECE_ID ,INPUT_BYTES_DISPLAY ,OUTPUT_BYTES_DISPLAY ,COMPRESSION ,COMPRESSION_RATIO ,COMMENT ,`PATH`
                              FROM oceanbase.CDB_OB_ARCHIVELOG l ;

                              TENANT_ID
                              DEST_ID
                              ROUND_ID
                              INCARNATION
                              DEST_NO
                              STATUS
                              BASE_PIECE_ID
                              USED_PIECE_ID
                              INPUT_BYTES_DISPLAY
                              OUTPUT_BYTES_DISPLAY
                              COMPRESSION
                              COMPRESSION_RATIO
                              COMMENT
                              PATH
                              1,004
                              1,004
                              1
                              1
                              0
                              DOING
                              1
                              1
                              60.19MB
                              60.19MB
                              none
                              1

                              file:///backup/obcebackup/obmysql

                               

                              • 查看事务日志归档历史

                              在 SYS 租户查看视图  CDB_OB_ARCHIVELOG_SUMMARY
                              ,在业务租户查看视图  DBA_OB_ARCHIVELOG_SUMMARY

                               

                              这个字段跟上面一样,不重复展示了。

                               

                              发起数据备份

                              • 设置数据备份目录。

                              数据备份目录参数是  DATA_BACKUP_DEST
                              ,也支持在 SYS 租户和业务租户下设置两种方法。

                              下面在业务租户下设置。

                                ALTER SYSTEM SET DATA_BACKUP_DEST = 'file:///backup/obcebackup/obmysql_data'

                                (root@10.0.0.66:2883) [test]> ALTER SYSTEM SET DATA_BACKUP_DEST = 'file:///backup/obcebackup/obmysql_data';
                                ERROR 4009 (58030): IO error
                                (root@10.0.0.66:2883) [test]> ALTER SYSTEM SET DATA_BACKUP_DEST = 'file:///backup/obcebackup/obmysql_data';
                                Query OK, 0 rows affected (0.12 sec)

                                 

                                第一次报错的原因是新增的目录没有读写权限。需要在 NFS Server 上将新增目录  owner
                                设置为  nfsnobody

                                 

                                • 查看数据备份目录信息

                                在 SYS 租户可以查看视图  CDB_OB_BACKUP_PARAMETER
                                ,在业务租户查看视图  DBA_OB_BACKUP_PARAMETER

                                 

                                  SELECT * FROM oceanbase.CDB_OB_BACKUP_PARAMETER ;

                                  TENANT_ID
                                  NAME
                                  VALUE
                                  1,004
                                  data_backup_dest
                                  file:///backup/obcebackup/obmysql_data

                                  这两个视图字段略显单薄,后面估计还会进一步丰富。

                                   

                                  • 发起全量数据备份

                                   

                                  首先全量数据备份之前要自己确认事务日志归档已经打开。

                                  备份之前也可以在会话级别设置密码。

                                   

                                    SET ENCRYPTION ON IDENTIFIED BY 'aaAA11__' ONLY;

                                     

                                    全量备份可以在 SYS 租户里发起,指定所有租户或者某个租户。也可以在业务租户里发起。这里我选用先在业务租户下发起备份。

                                     

                                      ALTER SYSTEM BACKUP DATABASE;

                                       

                                      再到 SYS 租户发起一次全量备份和增量备份。

                                        mysql -h10.0.0.66 -uroot@sys#obcedemo -P2883 -paaAA11__ -c -A oceanbase


                                          ALTER SYSTEM BACKUP TENANT = obmysql ;
                                          ALTER SYSTEM BACKUP INCREMENTAL TENANT = obmysql ;

                                           

                                           

                                          • 查看备份进度和历史。

                                          在 SYS 租户查看视图  CDB_OB_BACKUP_JOBS
                                          和  CDB_OB_BACKUP_TASKS
                                          , 在业务租户查看视图  DBA_OB_BACKUP_JOBS
                                          和  DBA_OB_BACKUP_TASKS
                                          。这些视图也有响应的历史视图。

                                           

                                          这里我在业务租户查询。

                                           

                                            SELECT jh.JOB_ID ,jh.INCARNATION ,jh.BACKUP_SET_ID ,jh.INITIATOR_TENANT_ID ,jh.EXECUTOR_TENANT_ID , jh.PLUS_ARCHIVELOG , jh.BACKUP_TYPE , jh.JOB_LEVEL , jh.ENCRYPTION_MODE ,jh.START_TIMESTAMP ,jh.END_TIMESTAMP , jh.STATUS , jh.`RESULT` , jh.COMMENT
                                            , th.task_ID, th.INPUT_BYTES , th.OUTPUT_BYTES , th.`RESULT` , th.`PATH`
                                            FROM DBA_OB_BACKUP_JOBS jh, DBA_OB_BACKUP_TASKS th
                                            WHERE jh.JOB_ID =th.JOB_ID AND jh.BACKUP_SET_ID = th.BACKUP_SET_ID
                                            ;




                                            SELECT jh.JOB_ID ,jh.INCARNATION ,jh.BACKUP_SET_ID ,jh.INITIATOR_TENANT_ID ,jh.EXECUTOR_TENANT_ID , jh.PLUS_ARCHIVELOG , jh.BACKUP_TYPE , jh.JOB_LEVEL , jh.ENCRYPTION_MODE ,jh.START_TIMESTAMP ,jh.END_TIMESTAMP , jh.STATUS , jh.`RESULT` , jh.COMMENT
                                            , th.task_ID, th.INPUT_BYTES , th.OUTPUT_BYTES , th.`RESULT` , th.`PATH`
                                            FROM DBA_OB_BACKUP_JOB_HISTORY jh, DBA_OB_BACKUP_TASK_HISTORY th
                                            WHERE jh.JOB_ID =th.JOB_ID AND jh.BACKUP_SET_ID = th.BACKUP_SET_ID
                                            ;

                                            JOB_ID
                                            INCARNATION
                                            BACKUP_SET_ID
                                            INITIATOR_TENANT_ID
                                            EXECUTOR_TENANT_ID
                                            PLUS_ARCHIVELOG
                                            BACKUP_TYPE
                                            JOB_LEVEL
                                            ENCRYPTION_MODE
                                            START_TIMESTAMP
                                            END_TIMESTAMP
                                            STATUS
                                            RESULT
                                            COMMENT
                                            task_ID
                                            INPUT_BYTES
                                            OUTPUT_BYTES
                                            RESULT
                                            PATH
                                            1
                                            1
                                            1
                                            1,004
                                            1004
                                            OFF
                                            FULL
                                            USER_TENANT
                                            PASSWORD
                                            2023-06-13 11:05:15.516
                                            2023-06-13 11:08:27.251
                                            COMPLETED
                                            0

                                            1
                                            6,804,143,719
                                            6,321,315,070
                                            0
                                            file:///backup/obcebackup/obmysql_data
                                            2
                                            1
                                            2
                                            1
                                            1004
                                            OFF
                                            FULL
                                            USER_TENANT
                                            NONE
                                            2023-06-13 11:29:27.120
                                            2023-06-13 11:32:27.638
                                            COMPLETED
                                            0

                                            2
                                            6,885,941,198
                                            6,322,193,311
                                            0
                                            file:///backup/obcebackup/obmysql_data
                                            3
                                            1
                                            3
                                            1
                                            1004
                                            OFF
                                            INC
                                            USER_TENANT
                                            NONE
                                            2023-06-13 11:37:53.299
                                            2023-06-13 11:39:18.864
                                            COMPLETED
                                            0

                                            3
                                            185,533,642
                                            26,475,442
                                            0
                                            file:///backup/obcebackup/obmysql_data

                                             

                                             

                                            (可选)停止备份

                                            如果数据库很大,备份时间很久,中间想取消,可以发命令:CANCEL BACKUP

                                            这个就不演示了。

                                             

                                            OB 集群手动恢复

                                            OB 4.1 版本的恢复依然是租户粒度的恢复,需要提前准备新租户的资源池,(可选)设置加密信息等。

                                            准备恢复租户的资源池

                                            首先查看当前租户剩余资源。

                                             

                                              select svr_ip, CPU_CAPACITY, (CPU_CAPACITY-CPU_ASSIGNED) CPU_FREE
                                              , round(MEM_CAPACITY/1024/1024/1024) MEM_CAPACITY_GB, round((MEM_CAPACITY-MEM_ASSIGNED)/1024/1024/1024,2) MEM_FREE_GB
                                              , round(DATA_DISK_CAPACITY/1024/1024/1024) DATA_CAPACITY_GB, round((DATA_DISK_CAPACITY-DATA_DISK_IN_USE)/1024/1024/1024,2) DATA_FREE_GB
                                              , round(DATA_DISK_CAPACITY/1024/1024/1024) LOG_CAPACITY_GB, round((LOG_DISK_CAPACITY-LOG_DISK_IN_USE)/1024/1024/1024,2) LOG_FREE_GB
                                              from GV$OB_SERVERS ;

                                              svr_ip
                                              CPU_CAPACITY
                                              CPU_FREE
                                              MEM_CAPACITY_GB
                                              MEM_FREE_GB
                                              DATA_CAPACITY_GB
                                              DATA_FREE_GB
                                              LOG_CAPACITY_GB
                                              LOG_FREE_GB
                                              10.0.0.66
                                              16
                                              0
                                              7
                                              0
                                              30
                                              23.18
                                              30
                                              28.69

                                               

                                              内存资源没有剩余。

                                              先创建一个用于检验的表,然后再删除这个业务租户释放一些资源。

                                               

                                                [root@server066 ~]$mysql -h10.0.0.66 -uroot@obmysql#obcedemo -P2883 -paaAA11__ -c -A test
                                                <...>
                                                Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.




                                                (root@10.0.0.66:2883) [test]> create table t_backup(id bigint not null auto_increment primary key, c1 varchar(100) , c2 timestamp default current_timestamp );
                                                Query OK, 0 rows affected (0.88 sec)




                                                (root@10.0.0.66:2883) [test]> insert into t_backup(c1) values('test ob 4.1 backup and restore');
                                                Query OK, 1 row affected (0.41 sec)




                                                (root@10.0.0.66:2883) [test]> insert into t_backup(c1) values('test ob 4.1 backup and restore 2 ');
                                                Query OK, 1 row affected (0.03 sec)




                                                (root@10.0.0.66:2883) [test]> select * from t_backup;
                                                +----+-----------------------------------+---------------------+
                                                | id | c1 | c2 |
                                                +----+-----------------------------------+---------------------+
                                                | 1 | test ob 4.1 backup and restore | 2023-06-13 11:47:11 |
                                                | 2 | test ob 4.1 backup and restore 2 | 2023-06-13 11:48:08 |
                                                +----+-----------------------------------+---------------------+
                                                2 rows in set (0.01 sec)

                                                恢复目标是恢复到时间点:2023-06-13 11:48:00

                                                 

                                                直接在 OCP-Express 里删除了租户。确认租户已经删除。

                                                 

                                                  (root@10.0.0.66:2883) [oceanbase]> select tenant_id,tenant_name,status from __all_tenant;
                                                  +-----------+-------------+--------+
                                                  | tenant_id | tenant_name | status |
                                                  +-----------+-------------+--------+
                                                  | 1 | sys | NORMAL |
                                                  | 1001 | META$1002 | NORMAL |
                                                  | 1002 | ocp | NORMAL |
                                                  +-----------+-------------+--------+
                                                  3 rows in set (0.01 sec)

                                                   

                                                  再次确认剩余可分配资源。

                                                  svr_ip
                                                  CPU_CAPACITY
                                                  CPU_FREE
                                                  MEM_CAPACITY_GB
                                                  MEM_FREE_GB
                                                  DATA_CAPACITY_GB
                                                  DATA_FREE_GB
                                                  LOG_CAPACITY_GB
                                                  LOG_FREE_GB
                                                  10.0.0.66
                                                  16
                                                  10
                                                  7
                                                  3
                                                  30
                                                  29.44
                                                  30
                                                  48.5

                                                   

                                                  创建用于恢复的租户的资源池。

                                                   

                                                    CREATE RESOURCE UNIT b_4c2g MAX_CPU 4, MEMORY_SIZE = '2G', MAX_IOPS 10240, MIN_IOPS=10240;
                                                    CREATE RESOURCE POOL restore_pool unit = 'b_4c2g', unit_num = 1, zone_list = ('

                                                    zone1');

                                                     

                                                    开始不完全恢复

                                                    恢复新租户到时间点:2023-06-13 11:48:00

                                                    • (可选)设置解密密码。

                                                    如果备份中使用了密码,这里就需要设置解密密码。否则后面恢复的时候会报错提示密码不对。

                                                      SET DECRYPTION IDENTIFIED BY 'aaAA11__' ;

                                                       

                                                      • 恢复租户到指定时间点。

                                                       

                                                        ALTER SYSTEM RESTORE restored_obmysql FROM 'file:///backup/obcebackup/obmysql_data,file:///backup/obcebackup/obmysql' UNTIL TIME='2023-06-13 11:48:00' WITH 'pool_list=restore_pool&locality=F@zone1' ;

                                                        跟 3.2 版本恢复不同的是,4.1 版本的恢复命令会阻塞一会,原因不明。

                                                         

                                                        • 查看恢复进度和详情

                                                        在 SYS 租户查看视图  CDB_OB_RESTORE_PROGRESS
                                                        和  CDB_OB_RESTORE_HISTORY

                                                         

                                                          SELECT p.TENANT_ID , p.JOB_ID , p.RESTORE_TENANT_ID , p.RESTORE_TENANT_NAME , p.BACKUP_TENANT_ID , p.BACKUP_TENANT_NAME, p.BACKUP_CLUSTER_NAME , p.BACKUP_DEST , p.RESTORE_OPTION , p.STATUS , p.START_TIMESTAMP , p.BACKUP_SET_LIST , p.BACKUP_PIECE_LIST , p.TOTAL_BYTES_DISPLAY , p.FINISH_BYTES_DISPLAY
                                                          FROM CDB_OB_RESTORE_PROGRESS p ;




                                                          SELECT h.TENANT_ID , h.JOB_ID , h.RESTORE_TENANT_ID , h.RESTORE_TENANT_NAME , h.BACKUP_TENANT_ID , h.BACKUP_TENANT_NAME, h.BACKUP_CLUSTER_NAME , h.BACKUP_DEST , h.RESTORE_OPTION , h.STATUS , h.START_TIMESTAMP , h.BACKUP_SET_LIST , h.BACKUP_PIECE_LIST , h.TOTAL_BYTES_DISPLAY , h.FINISH_BYTES_DISPLAY
                                                          FROM CDB_OB_RESTORE_HISTORY h ;

                                                          TENANT_ID

                                                          JOB_ID

                                                          RESTORE_TENANT_ID

                                                          RESTORE_TENANT_NAME

                                                          BACKUP_TENANT_ID

                                                          BACKUP_TENANT_NAME

                                                          BACKUP_CLUSTER_NAME

                                                          BACKUP_DEST

                                                          RESTORE_OPTION

                                                          STATUS

                                                          START_TIMESTAMP

                                                          BACKUP_SET_LIST

                                                          BACKUP_PIECE_LIST

                                                          TOTAL_BYTES_DISPLAY

                                                          FINISH_BYTES_DISPLAY

                                                          1

                                                          2

                                                          1,006

                                                          restored_obmysql

                                                          1,004

                                                          obmysql

                                                          obcedemo

                                                          file:///backup/obcebackup/obmysql_data,file:///backup/obcebackup/obmysql

                                                          pool_list=restore_pool&locality=F@zone1

                                                          SUCCESS

                                                          2023-06-13 12:06:40.323

                                                          file:///backup/obcebackup/obmysql_data/backup_set_2_full,file:///backup/obcebackup/obmysql_data/backup_set_3_inc

                                                          file:///backup/obcebackup/obmysql/piece_d1004r1p1

                                                          25.25MB

                                                          0.00MB

                                                          1,006

                                                          2

                                                          1,006

                                                          restored_obmysql

                                                          1,004

                                                          obmysql

                                                          obcedemo

                                                          file:///backup/obcebackup/obmysql_data,file:///backup/obcebackup/obmysql

                                                          pool_list=restore_pool&locality=F@zone1

                                                          SUCCESS

                                                          2023-06-13 12:06:40.323

                                                          file:///backup/obcebackup/obmysql_data/backup_set_2_full,file:///backup/obcebackup/obmysql_data/backup_set_3_inc

                                                          file:///backup/obcebackup/obmysql/piece_d1004r1p1

                                                          25.25MB

                                                          0.00MB

                                                          一次租户恢复任务会产生两笔记录。分别是:sys
                                                          租户的任务记录(记录被恢复租户的恢复相关信息)和 新租户的记录(记录被恢复出来的租户的恢复进度信息)。status
                                                          字段会反应具体的恢复阶段。详情参考官网:查看恢复进度-OceanBase 数据库 -OceanBase文档中心-分布式数据库使用文档
                                                           

                                                          验证恢复结果

                                                          登录被恢复出的租户,查看表的记录。
                                                           
                                                          从上图结果看,符合不完全恢复的预期。
                                                          随后,修改租户名为  obmysql
                                                           
                                                            alter tenant restored_obmysql rename global_name to obmysql;
                                                            select tenant_id, tenant_name , locality from __all_tenant;
                                                             
                                                            租户恢复出来替换原租户后,租户的备份策略需要重新配置。


                                                             

                                                            总结

                                                             
                                                            在备份恢复功能上,OB 社区版跟企业版的能力应该是一致的。OB 4.1 版本的备份支持租户级别的备份后,备份参数的设置、备份命令的下达、备份相关视图都可以在 SYS 租户和业务租户下分别查询。SYS 租户下的视图是  CDB_
                                                            开头,业务租户下的视图是  DBA_
                                                            开头。SYS 租户下能查询和管理整个集群里所有租户的备份相关事情,业务租户只查看和管理当前租户的备份相关事情。租户的备份相关元数据是跟租户 ID 关联,而不是名字。被恢复出来的租户虽然名字可以改为一样,但实际是不同的租户。
                                                             

                                                            更多阅读


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

                                                            评论