---
title: "执行指定路径的恢复 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: 执行指定路径的恢复 当数据备份集（backup_set）和日志归档（archivelog_piece）由于业务原因手动搬迁至其他路径后，可以通过加载对应的 backup_set 和 archivelog_piece 后再发起恢复命令的方式来恢复租户。 前提条件 需要确认已获取了待恢复的 backup_set 和 ar…
---
切换语言

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

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

# 执行指定路径的恢复

更新时间：2025-09-04 10:57:16

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/600.manage/600.backup-and-recovery/600.restore-data/260.initiate-the-specified-path-restore.md)  

当数据备份集（backup_set）和日志归档（archivelog_piece）由于业务原因手动搬迁至其他路径后，可以通过加载对应的 backup_set 和 archivelog_piece 后再发起恢复命令的方式来恢复租户。

## 前提条件

- 需要确认已获取了待恢复的 backup_set 和 archivelog_piece 的存放路径。
 - 需要确认待恢复的 backup_set 和 archivelog_piece 属于同一租户，当前仅允许从同一个租户的 backup_set 和 archivelog_piece 中恢复出新租户。
 - 需要确认已完成恢复前准备，具体操作参见 [恢复前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573998)。

## 操作步骤

1. 使用 `root` 用户登录待恢复的租户所在集群的 `sys` 租户。
 2. （可选）执行 `ALTER SYSTEM RESTORE...PREVIEW` 命令，指定原始数据备份路径和日志归档路径及期望恢复的时间。

   语句如下：

   ```sql
   ALTER SYSTEM RESTORE FROM 'uri' UNTIL { TIME='timestamp' | SCN=scn } PREVIEW;

   ```

   相关参数说明如下：

      - `uri`：指定原始数据备份路径和日志归档的路径，使用英文逗号分隔。
      - `TIME='timestamp' | SCN=scn`：指定期望恢复的时间戳或 SCN。执行该语句时，必须显式指定时间。

   完整参数说明请参见[ALTER SYSTEM - RESTORE PREVIEW](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577177)。

   示例如下：

       OSS   NFS
      - 指定原始数据备份路径和日志归档路径，并且期望恢复到恢复到指定 scn `1712650554000909004`。

       ```shell
       obclient [oceanbase]> ALTER SYSTEM RESTORE FROM 'oss://test_bucket/data?host=***&access_id=****&access_key=****, oss://test_bucket/archive?host=***&access_id=****&access_key=****' UNTIL SCN = 1712650554000909004 PREVIEW;

       ```
      - 指定原始数据备份路径和日志归档路径，并且期望恢复到指定时间戳 `2024-04-09 16:15:54`。

       ```shell
       obclient [oceanbase]> ALTER SYSTEM RESTORE FROM 'oss://test_bucket/data?host=***&access_id=****&access_key=****, oss://test_bucket/archive?host=***&access_id=****&access_key=****' UNTIL TIME = '2024-04-09 16:15:54' PREVIEW;

       ```
      - 指定原始数据备份路径和日志归档路径，并且期望恢复到恢复到指定 scn `1712650554000909004`。

       ```shell
       obclient [oceanbase]> ALTER SYSTEM RESTORE FROM 'file:///ob_backup/data, file:///ob_backup/archive' UNTIL SCN = 1712650554000909004 PREVIEW;

       ```shell
       obclient [oceanbase]> ALTER SYSTEM RESTORE FROM 'file:///ob_backup/data, file:///ob_backup/archive' UNTIL TIME = '2024-04-09 16:15:54' PREVIEW;

       ```
 3. （可选）执行 `SHOW RESTORE PREVIEW` 命令，展示恢复到指定时间所需的 backup_set 和 archivelog_piece。

   #### 注意

   必须在 `ALTER SYSTEM RESTORE...PREVIEW` 命令执行成功后，再执行 `SHOW RESTORE PREVIEW` 命令，否则无法获取所需的结果。

   ```shell
   obclient [oceanbase]> SHOW RESTORE PREVIEW;

   ```

   例如，结果如下：

   ```shell
   +--------------+-----------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------+
   | backup_type  | backup_id | backup_dest                                                                    | description                                                                  |
   +--------------+-----------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------+
   | BACKUP_SET   |         1 | file:///ob_backup/data/backup_set_1_full                                       |                                                                              |
   | BACKUP_PIECE |         1 | file:///ob_backup/archive/piece_d1002r1p1                                      | start_scn_display: 20240409T155954, checkpoint_scn_display: 20240409T160154. |
   | BACKUP_PIECE |         2 | file:///ob_backup/archive/piece_d1002r1p2                                      | start_scn_display: 20240409T160154, checkpoint_scn_display: 20240409T160353. |
   | BACKUP_PIECE |         3 | file:///ob_backup/archive/piece_d1002r1p3                                      | start_scn_display: 20240409T160354, checkpoint_scn_display: 20240409T160553. |
   | BACKUP_PIECE |         4 | file:///ob_backup/archive/piece_d1002r1p4                                      | start_scn_display: 20240409T160554, checkpoint_scn_display: 20240409T160754. |
   | BACKUP_PIECE |         5 | file:///ob_backup/archive/piece_d1002r1p5                                      | start_scn_display: 20240409T160754, checkpoint_scn_display: 20240409T160953. |
   | BACKUP_PIECE |         6 | file:///ob_backup/archive/piece_d1002r1p6                                      | start_scn_display: 20240409T160954, checkpoint_scn_display: 20240409T161154. |
   | BACKUP_PIECE |         7 | file:///ob_backup/archive/piece_d1002r1p7                                      | start_scn_display: 20240409T161154, checkpoint_scn_display: 20240409T161354. |
   | BACKUP_PIECE |         8 | file:///ob_backup/archive/piece_d1002r1p8                                      | start_scn_display: 20240409T161354, checkpoint_scn_display: 20240409T161554. |
   +--------------+-----------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------+
   9 rows in set

   ```

   查询结果中展示了恢复到指定时间所需的所有 backup_set 和 archivelog_piece，以及这些文件在原始数据备份和日志归档目的端下的存放路径。如果因为业务需要，用户已将部分或所有文件手动转移到其他路径或存储介质上，则需要根据实际情况，自行维护好每个 backup_set 和 archivelog_piece 从原始路径到当前路径之间的映射关系。

   例如，上述查询结果中，需要使用 `BACKUP_PIECE` 为 `1` 的 archivelog_piece 进行恢复，而该文件已经被手动转移到 `oss://test_bucket/archive/piece_1` 上，则在使用 `ADD RESTORE SOURCE` 命令加载备份路径时，需要选择新的存放路径 `oss://test_bucket/archive/piece_1`。
 4. 执行 `ADD RESTORE SOURCE` 命令，分别加载恢复所需的 backup_set 和 archivelog_piece。

   加载路径的语句如下：

   ```sql
   ALTER SYSTEM ADD RESTORE SOURCE 'restore_path';

   ```

   语句使用说明：

      - `restore_path`：填写待加载的 backup_set 或 archivelog_piece 的路径。可以是一个路径，也可以是多个路径。

       #### 注意

       如果待加载的 backup_set 或 archivelog_piece 存放在对象存储上，则要求每个 backup_set 或 archivelog_piece 路径中的 `host`、`access_id` 以及 `access_key` 等参数信息均相同。
      - 该语句在同一个会话中可以连续多次执行。在同一会话中多次执行时，系统会增量添加到恢复源列表中。

   示例如下：

      1. 加载待恢复的 backup_set。

        ```shell
        obclient [oceanbase]> ALTER SYSTEM ADD RESTORE SOURCE 'file:///ob_backup/data/backup_set_1_full';

        ```
      2. 加载待恢复的 archivelog_piece。

        ```shell
        obclient [oceanbase]> ALTER SYSTEM ADD RESTORE SOURCE 'file:///ob_backup/archive/piece_d1002r1p1,file:///ob_backup/archive/piece_d1002r1p2';

        ```

        ```shell
        obclient [oceanbase]> ALTER SYSTEM ADD RESTORE SOURCE 'oss://test_bucket/archive/piece_1?host=***&access_id=x****&access_key=****';

        ```
 5. （可选）加载 backup_set 或 archivelog_piece 过程中，如果发现输入了错误的路径，可以执行以下语句来撤销之前的输入后，再重新加载正确的恢复路径。

   ```shell
   obclient [oceanbase]> ALTER SYSTEM CLEAR RESTORE SOURCE;

   ```
 6. 所有路径加载成功后，调用恢复命令。

   #### 注意

      - 执行恢复命令时，要求与执行 `ADD RESTORE SOURCE` 命令的会话是同一个会话，如果不是同一个会话（原先的会话中断或者使用了新的会话），之前加载的恢复源列表就会被清空。
      - 执行 `ADD RESTORE SOURCE` 命令后，在同一会话中不允许再通过指定备份目的端的恢复命令来恢复租户。
      - 执行恢复命令后，无论是否恢复成功，之前加载的恢复源列表均会被清空。如果需要重新调用恢复命令，则需要重新加载恢复所需的 backup_set 和 archivelog_piece。  

   执行以下语句：

   ```sql
   ALTER SYSTEM RESTORE restore_tenant_name [UNTIL {TIME='timestamp' | SCN=scn} ] WITH 'restore_option';

   ```

   完整参数说明请参见[ALTER SYSTEM - RESTORE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577184)。

   有关各参数的详细说明，参见 [物理恢复相关参数介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574000)。

   调用恢复命令的示例如下：

      - 从指定路径恢复租户 `mysql` 到指定 scn `1658285759724047000`, 并指定资源池为 `restore_pool`。

       ```shell
       // 全量恢复
       obclient [oceanbase]> ALTER SYSTEM RESTORE mysql UNTIL SCN = 1712650554000909004 WITH 'pool_list=restore_pool';

       // 快速恢复
       obclient [oceanbase]> ALTER SYSTEM RESTORE mysql UNTIL SCN = 1712650554000909004 WITH 'pool_list=restore_pool&method=quick';

       ```
      - 从指定路径恢复租户 `mysql` 到指定时间戳 `2024-04-09 16:15:54`, 并指定资源池为 `restore_pool`。

       ```shell
       // 全量恢复
       obclient [oceanbase]> ALTER SYSTEM RESTORE mysql UNTIL TIME = '2024-04-09 16:15:54' WITH 'pool_list=restore_pool';

       // 快速恢复
       obclient [oceanbase]> ALTER SYSTEM RESTORE mysql UNTIL TIME = '2024-04-09 16:15:54' WITH 'pool_list=restore_pool&method=quick';

       ```

## 后续操作

- 发起恢复任务后，可以通过视图查看恢复的进度和结果，具体操作参见 [查看恢复进度](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574001)。
 - 恢复任务完成后，如果是从低版本的备份数据恢复到高版本集群中的场景，还需要对恢复出来的租户进行升级，具体操作参见 [恢复完成后升级租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574002)。
 - 物理恢复流程与物理备库统一，物理恢复后的租户为备租户，后续该租户可作为备租户提供相关服务，也可转为主租户提供服务。作为备租户继续日志归档从源租户回放日志的详细操作参见 [备租户分段回放日志](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573994)；将备租户转为主租户的详细操作，参见 [备租户转为主租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573999)。

## 相关文档

更多恢复相关的介绍，参见 [恢复流程](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574667)。

 上一篇 下一篇 ![有帮助](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) 咨询热线
