---
title: "执行备份备份数据的恢复 | OceanBase 文档中心"
description: "执行备份备份数据的恢复 基于备份备份的恢复 使用 root 用户登录到数据库的 sys 租户。 执行以下命令，开始执行恢复任务。 obclient&gt; ALTER SYSTEM RESTORE dest_tenant_name FROM source_tenant_name AT &#x27;uri&#x27; UNTIL &#x27;timest…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.4 企业版 LTS

# 执行备份备份数据的恢复

更新时间：2026-06-16 20:48:25

## 基于备份备份的恢复

1. 使用 `root` 用户登录到数据库的 `sys` 租户。
 2. 执行以下命令，开始执行恢复任务。

   ```sql
   obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM source_tenant_name AT 'uri' UNTIL 'timestamp' WITH 'restore_option' PREVIEW;

   ```

   参数说明如下表所示。

   | 参数 | 描述 |
   | --- | --- |
   | dest_tenant_name | 指恢复的新租户的名称。 |
   | source_tenant_name | 指源集群的租户。 |
   | uri | 指备份时设置的 `backup_dest`。 |
   | timestamp | 指恢复的时间戳，需要大于等于最早备份的数据备份的 `CDB_OB_BACKUP_SET_DETAILS` 的 `START_TIME`，小于等于日志备份 `CDB_OB_BACKUP_ARCHIVELOG_SUMMARY` 的`MAX_NEXT_TIME`。 |
   | restore_option | 支持 `backup_cluster_name`、`backup_cluster_id`、`pool_list`、`locality`、`primary_zone`、`kms_encrypt`：    - `backup_cluster_name` 为必选项，填写源集群的名称。   - `backup_cluster_id` 为必选项，填写源集群的 `cluster_id`   - `pool_list`为必选项，填写用户的资源池。多个资源池之间用英文逗号（,）分隔。   - `locality` 为可选项，填写新租户副本分布的 Locality 信息，需要满足与新租户所在集群的 `pool_list` 的 Zone 信息相匹配，默认使用源租户的 Locality。若填写的信息与新租户所在集群的 `pool_lis`t 的 Zone 信息不匹配，则系统会重置为缺省 Locality，即按 resource_pool 的 `zone_list` 为每个 Zone 设一个 F 副本。        例如，源租户的 Locality 为 `"F@z1,F@z2,F@z3"`，新租户所在集群的 Zone 分布为 `"z1,z2,z3,z4"`，则新租户的 Locality 使用源租户的 Locality。若源租户的 Locality为 `"F@z1,F@z2,F@z3,F@z4,F@z5"`，新租户所在集群的 Zone 分布为 `"z1,z2,z3"`，则新租户的 Locality 使用所在集群的全部的 Zone，即新租户的 Locality 为 `"F@z1,F@z2,F@z3"`。   - `primary_zone` 为可选项，填写新租户的 Leader 副本的偏好位置，需要满足与 `pool_list` 及`locality` 的匹配，即需要满足 Zone 信息匹配以及 `primary_region` 内至少有两个 Paxos 成员等限制，默认使用源租户的 Primary Zone。若填写的信息与新租户所在集群的 `pool_list` 及 `locality` 不匹配，则系统会将其重置为缺省 `primary_zone`，即按 `locality` 的 `zone_list` 将 Leader 随机分布在这些 Zone 中。        例如，源租户的 Locality 为 `"F@z1,F@z2,F@z3"`，Primary Zone 为 `z1`，新租户所在集群的 Zone 分布为 `"z1,z2,z3,z4"`，则新租户的 Primary Zone 也为 `z1`。若源租户的 Locality 为 `"F@z1,F@z2,F@z3,F@z4,F@z5"`，Primary Zone 为 `z1`，新租户所在集群的 Zone 分布是"z1,z2,z3"，则新租户的 Locality 为 `"F@z1,F@z2,F@z3"`， 同时 Primary Zone 为 `"z1,z2,z3"`。   - `kms_encrypt`为可选项，为 `true` 则表示在恢复时需要使用指定的 `kms_encrypt_info`。 |

   恢复 PREVIEW 示例：

   ```sql
   obclient> ALTER SYSTEM RESTORE restored_trade FROM trade AT 'file:///data/nfs/backup' until '2020-05-21 09:39:54.071670' with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool' PREVIEW;

   ```
 3. 执行 `SHOW RESTORE PREVIEW` 来获取恢复数据的路径。

   ```shell
   obclient> SHOW RESTORE PREVIEW;
   +--------------+-----------+---------+------------------------------------------------------------------------------------------------------------+-------------+
   | backup_type  | backup_id | copy_id | backup_dest                                                                                                | file_status |
   +--------------+-----------+---------+------------------------------------------------------------------------------------------------------------+-------------+
   | BACKUP_SET   |         1 |       0 | file:///data/nfs/backup/1/incarnation_1/1002/data/backup_set_1_full_20211225                               | AVAILABLE   |
   | BACKUP_SET   |         2 |       0 | file:///data/nfs/backup/1/incarnation_1/1002/data/backup_set_2_inc_20211225                                | AVAILABLE   |
   | BACKUP_SET   |         1 |       1 | file:///data/nfs/backup_backup/1/incarnation_1/1002/data/backup_set_1_full_20211225                        | AVAILABLE   |
   | BACKUP_SET   |         2 |       1 | file:///data/nfs/backup_backup/1/incarnation_1/1002/data/backup_set_2_inc_20211225                         | AVAILABLE   |
   | BACKUP_PIECE |         1 |       0 | file:///data/nfs/backup/1/incarnation_1/1002/clog/1_1_20211225                                             | AVAILABLE   |
   | BACKUP_PIECE |         2 |       0 | file:///data/nfs/backup/1/incarnation_1/1002/clog/1_2_20211225                                             | AVAILABLE   |
   | BACKUP_PIECE |         2 |       1 | file:///data/nfs/backup_backup/1/incarnation_1/1002/clog/1_2_20211225                                      | AVAILABLE   |
   +--------------+-----------+---------+------------------------------------------------------------------------------------------------------------+-------------+

   ```
 4. 通过 `ADD RESTORE SOURCE` 语句来加载需要恢复的路径。

   > **说明**
   >
   >  
   >
   > `xxx` 表示上文展示的路径。需要分别加载 `BACKUP_SET` 和 `BACKUP_PIECE` 对应的恢复路径，并且对于每一个 `backup_id` 相同的 `BACKUP_SET` 或 `BACKUP_PIECE`，只需要选择其中一个 `copy_id` 对应的路径加入即可。

   ```sql
   obclient> ALTER SYSTEM ADD RESTORE SOURCE 'xxx';

   ```

   例如，根据上一步的查询结果，对于 `BACKUP_SET` 和 `BACKUP_PIECE`：

      - `BACKUP_SET`

       `backup_id` 为 `1` 的 `BACKUP_SET`，可以选择 `copy_id` 为 `0` 或 `1` 对应的路径，语句如下：

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup/1/incarnation_1/1002/data/backup_set_1_full_20211225';

       ```

       或者

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup_backup/1/incarnation_1/1002/data/backup_set_1_full_20211225';

       ```

       `backup_id` 为 `2` 的 `BACKUP_SET`，选择 `copy_id` 为 `0` 对应的路径，语句如下：

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup/1/incarnation_1/1002/data/backup_set_2_inc_20211225';

       ```
      - `BACKUP_PIECE`

       `backup_id` 为 `1` 的 `BACKUP_PIECE`，选择 `copy_id` 为 `0` 对应的路径，语句如下：

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup/1/incarnation_1/1002/clog/1_1_20211225';

       ```

       `backup_id` 为 `2` 的 `BACKUP_PIECE`，可以选择 `copy_id` 为 `0` 或 `1` 对应的路径，语句如下：

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup/1/incarnation_1/1002/clog/1_2_20211225';

       ```

       或者

       ```sql
       ALTER SYSTEM ADD RESTORE SOURCE 'file:///data/nfs/backup_backup/1/incarnation_1/1002/clog/1_2_20211225';

       ```

   如果输入错误，您可执行下述语句来撤销之前的输入。

   ```sql
   ALTER SYSTEM CLEAR RESTORE SOURCE;

   ```
 5. 调用恢复命令。

   ```sql
   obclient> ALTER SYSTEM RESTORE <$restore_tenant> FROM <$backup_tenant> UNTIL '<$restore_checkpoint>' WITH 'backup_cluster_name=$backup_cluster_name&backup_cluster_id=$backup_cluster_id&pool_list=$resource_pool_list&locality=F@$zone_list&primary_zone=$primary_zone_list';

   ```

   > **注意**
   >
   >  
   >
   > 与普通的物理恢复不同，基于备份备份的多目的端恢复要求 SQL 语句中不带 `at 'backup_dest'` 字段。其中，
   >
   >  
   >    - `$restore_tenant` 表示恢复的租户名。
   >    - `$backup_tenant` 表示备份时的租户名。
   >    - `$restore_checkpoint` 表示希望恢复到的时间戳。

   使用示例：

   ```sql
   obclient> ALTER SYSTEM RESTORE test_restore_tenant FROM test_backup_tenant UNTIL '2020-05-21 09:39:54.071670' WITH 'backup_cluster_name=test_oceanbase&backup_cluster_id=1&pool_list=small_pool_2&locality=F@z1&primary_zone=z1';

   ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
