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

分布式数据库学习Note146:OceanBase社区版中,如何执行全量恢复?

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/


本节主要介绍如何通过命令的方式进行租户级物理恢复,目前 OceanBase 数据库支持租户级别的基于时间点的全量恢复。

恢复会先根据用户输入的命令,从备份目的端将需要的宏块数据从对应的全量备份和增量备份中恢复到目标租户,并同步拉取和回放事务日志。

前提条件

执行全量恢复前,请确认已完成恢复前准备,具体操作请参见 恢复前准备

执行全量恢复

  1. 使用 root 用户登录数据库的 sys 租户。

  2. 执行以下语句,开始执行恢复任务。

    语句如下:

    • 恢复到指定时间戳

      obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME=timestamp WITH restore_option [DESCRIPTION description];
      
      复制
    • 恢复到指定 SCN

      obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN=scn WITH restore_option [DESCRIPTION description];
      
      复制
    • 恢复到最新位点

      obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri WITH restore_option [DESCRIPTION description];
      
      复制

    其中 uri 需要分别指定数据备份路径和日志归档路径, UNTIL [TIME|SCN] 指用户指定的恢复终点,恢复到该位点为止,但不包括该位点。restore_option 支持指定 pool_listlocalityprimary_zonekms_encrypt,pool_list 为必选项,其余为可选项。 语句中各参数的详细说明请参见 RESTORE

    恢复示例如下:

    • NFS

      • 从数据备份路径 file:///data/nfs/backup/data 与日志归档路径 file:///data/nfs/backup/archive 恢复租户 mysql 到指定时间戳 2022-06-1 00:00:00, 指定资源池为 restore_pool

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' until TIME='2022-06-1 00:00:00' WITH 'pool_list=restore_pool';
        
        复制
      • 从数据备份路径 file:///data/nfs/backup/data 与日志归档路径 file:///data/nfs/backup/archive 恢复租户 mysql 恢复到当前最新的归档位点, 指定资源池为 restore_pool

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' WITH 'pool_list=restore_pool';
        
        复制
      • 从数据备份路径 file:///data/nfs/backup/data 与日志归档路径 file:///data/nfs/backup/archive 恢复租户 mysql 到指定 scn 1658285759724047000, 指定资源池为 restore_pool

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' until SCN='1658285759724047000' WITH 'pool_list=restore_pool';
        
        复制
      • 从数据备份路径 file:///data/nfs/backup/data 与日志归档路径 file:///data/nfs/backup/archive 恢复租户 mysql 到指定时间戳 2022-06-1 00:00:00, 指定资源池为 restore_pool, 副本 Locality 为 F@z1,F@z2,F@z3

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' until TIME='2022-06-1 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3';
        
        复制
      • 从数据备份路径 file:///data/nfs/backup/data 与日志归档路径 file:///data/nfs/backup/archive 恢复租户 mysql 到指定时间戳 2022-06-1 00:00:00, 指定资源池为 restore_pool, 副本 Locality 为 F@z1,F@z2,F@z3, 并指定 primary_zone 为 z1

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' until TIME='2022-06-1 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3&primary_zone=z1';
        
        复制
    • OSS

      除 url 参数有所变更外, 其余参数使用与 NFS 一致。

      • 从 OSS 备份路径 oss://oceanbase-test-bucket/backup/data/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx 与 OSS 日志归档路径 oss://oceanbase-test-bucket/backup/archive/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx恢复租户 mysql 到指定时间戳 2022-06-1 00:00:00, 指定资源池为 restore_pool

        obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx,oss://oceanbase-test-bucket/backup/archive/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx' until TIME='2022-06-1 00:00:00' WITH 'pool_list=restore_pool';
        
        复制

    发起恢复任务后,您可以通过视图查看恢复的进度和结果,具体操作请参见 查看恢复进度

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论