ITPub博客

首页 > 数据库 > 国内数据库 > 【手摸手玩转 OceanBase 175】如何执行执行全量恢复

【手摸手玩转 OceanBase 175】如何执行执行全量恢复

原创 国内数据库 作者:13579NB232 时间:2023-01-19 17:22:40 0 删除 编辑

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

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

前提条件

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

执行全量恢复

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

  2. (可选)执行以下语句,设置备份的恢复密码。

    仅在数据备份时添加了密码的场景下才需要设置备份的恢复密码。

    obclient> SET DECRYPTION IDENTIFIED BY 'password';

    其中, password 需要替换为备份时添加的密码。如果全量备份和增量备份设置的密码不一样,则需要输入多个密码,密码之间使用英文逗号分隔(全量备份密码放在前面,增量备份密码放在后面)。

    示例:

    obclient> SET DECRYPTION IDENTIFIED BY '******';
    obclient> SET DECRYPTION IDENTIFIED BY '******','******';
  3. 执行以下语句,开始执行恢复任务。

    语句如下:

    • 恢复到指定时间戳

      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] 指用户指定的恢复终点,恢复到该位点为止,且包括该位点。

    • 当指定恢复到  TIME 或  SCN 时, 必须以  = 来连接指定的值。

    • restore_option 支持指定  pool_list、 locality、 primary_zone、 kms_encrypt, 其中  pool_list 为必选项, 其余为可选项。

    语句中各参数的详细说明请参见  恢复参数。

    恢复示例如下:

    • 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';

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932892/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    184
  • 访问量
    93206