---
title: "执行物理恢复 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 执行物理恢复 本节主要介绍如何通过命令的方式进行租户级物理恢复，目前 OceanBase 数据库支持租户级别的基于时间点的全量恢复和快速恢复。有关全量恢复与快速恢复的区别请参见 物理备份与恢复概述 。 OceanBase 数据库的恢复支持在同集群内恢复，也支持在不同的集群内恢复。 恢复会先根据用户输入的命令，从备份目…
---
切换语言

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

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

# 执行物理恢复

更新时间：2026-04-07 19:56:31

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

本节主要介绍如何通过命令的方式进行租户级物理恢复，目前 OceanBase 数据库支持租户级别的基于时间点的全量恢复和快速恢复。有关全量恢复与快速恢复的区别请参见 [物理备份与恢复概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475597)。

OceanBase 数据库的恢复支持在同集群内恢复，也支持在不同的集群内恢复。

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

## 前提条件

执行物理恢复前，请确认已完成恢复前准备，具体操作请参见 [恢复前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475975)。

## 注意事项

- 当前版本在数据备份的同时备份了租户级配置项，但备份的租户级配置项仅用于为用户提供配置参考，物理恢复时不会直接恢复到租户中。有关备份配置项的详细介绍，参见 [备份配置项](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475968)。
 - 执行恢复命令时，如果使用的是快速恢复方式，则在快速恢复完成后，需要注意以下事项：

     - 恢复出来的租户不支持手动发起合并，不支持数据备份，也不支持 Switchover/Failover 成主库，只能作为备库存在。
     - 恢复出来的租户在使用期间，仍然要保证该租户的所有 Unit 所在的 OBServer 节点均能访问到源租户数据备份中的数据，若源租户数据备份使用的备份介质为 NFS，则要求其不能是 UMOUNT 状态。

## 操作步骤

## 操作步骤

1. 使用 `root` 用户登录集群的 `sys` 租户。
 2. （可选）执行以下语句，设置备份的恢复密码。

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

   ```sql
   SET DECRYPTION IDENTIFIED BY 'password';

   ```

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

   全量备份和增量备份设置的密码相同时的示例如下：

   ```sql
   SET DECRYPTION IDENTIFIED BY '******';

   ```

   全量备份和增量备份设置的密码不一样时的示例如下：

   ```sql
   SET DECRYPTION IDENTIFIED BY '******','******';

   ```
 3. 执行以下语句，设置加密信息。

   #### 说明

   如果未加密或恢复时可以访问原来的密钥管理服务，则跳过本步骤。

   ```shell
   obclient [(none)]> SET @kms_encrypt_info = '<加密string>';

   ```

   其中，`<加密string>` 为 `EXTERNAL_KMS_INFO` 的值，`EXTERNAL_KMS_INFO` 为租户级配置项。

   #### 说明

   `external_kms_info` 用于存储一些密钥管理信息。有关该配置项的详细介绍，请参见 [external_kms_info](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478907)。
 4. 执行以下语句，开始执行恢复任务。

       全量恢复   快速恢复

   语句如下：

      - 恢复到指定时间戳

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME='timestamp' WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}][&method=full]' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```
      - 恢复到指定 SCN

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN=scn WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}][&method=full]' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```
      - 恢复到最新位点

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}][&method=full]' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```

   语句如下：

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME='timestamp' WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}]&method=quick' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN=scn WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}]&method=quick' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```sql
       ALTER SYSTEM RESTORE dest_tenant_name FROM uri WITH 'pool_list=pool_list[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}]&method=quick' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION description];

       ```

   语句中的部分参数说明如下：

      - `TIME='timestamp'`、`SCN=scn`：指定恢复的终点，恢复到该位点位置，且包含该位点。语句中 `TIME` 或 `SCN` 选取的详细说明，参见 [物理恢复相关参数介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475976)。
      - `uri`：指定备份时设置的数据备份路径 `backup_data_dest` 与日志归档路径 `log_archive_dest`，该值至少包含一条数据备份路径和一条日志归档路径，路径之间使用英文逗号（,）分隔。
      - `pool_list`：填写用户的资源池。多个资源池之间用英文逗号（,）分隔。
      - `locality`、`primary_zone`：指定新租户副本分布的 Locality 信息以及Leader 副本的偏好位置。可选。有关这些参数的详细说明，参见 [ALTER SYSTEM - RESTORE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479664)。

       #### 注意

       物理恢复不支持列存副本，在指定新租户的 Locality 时，不允许指定 C 副本。更多 C 副本的介绍及使用说明，参见 [列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479402)。
      - `concurrency`：指定数据恢复的并发度，可选。默认等于该租户被分配的 Unit 的 `MAX_CPU` 数。
      - `kms_encrypt`：可选，为 `true` 时表示在恢复时需要使用在恢复前指定的 `kms_encrypt_info`。
      - `method`：指定数据恢复的方式，不区分大小写。取值如下：

            - `full`：全量恢复。不显式指定时，默认为 `full`。
            - `quick`：快速恢复。
      - `WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'`：指定加密租户的秘钥备份信息。仅当源租户配置了透明加密，才需要在恢复时指定秘钥备份相关的信息。

            - `backup_key_path`：秘钥的备份路径。
            - `password`：备份秘钥时设置的加密密码。

       有关秘钥备份的相关操作，请参见 [备份前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475964) 中的 **备份秘钥**。

   有关物理恢复中各参数的详细说明，参见 [ALTER SYSTEM - RESTORE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479664)。

   恢复示例如下：

       阿里云 OSS   NFS   AWS S3   兼容 S3 协议的对象存储
      - 从 OSS 备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2020-06-01 00:00:00`, 指定资源池为 `restore_pool`，以全量恢复方式进行恢复，同时恢复源租户的密钥信息。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool' WITH KEY FROM 'oss://oceanbase-test-bucket/data_backup_dest/key?host=***.aliyun-inc.com&access_id=***&access_key=***' ENCRYPTED BY '******';

       ```
      - 从数据备份路径与日志归档路径恢复租户 `mysql` 到指定 scn `1658285759724047000`, 指定资源池为 `restore_pool`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' UNTIL SCN=1658285759724047000 WITH 'pool_list=restore_pool&method=full';

       ```
      - 从数据备份路径与日志归档路径恢复租户 `mysql` 恢复到当前最新的归档位点, 指定资源池为 `restore_pool`，同时指定恢复的并发度 `concurrency` 为 `50`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' WITH 'pool_list=restore_pool&concurrency=50';

       ```
      - 从数据备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2020-06-01 00:00:00`, 指定资源池为 `restore_pool`, 副本 Locality 为 `F@z1,F@z2,F@z3`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3';

       ```
      - 从数据备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2020-06-01 00:00:00`, 指定资源池为 `restore_pool`, 副本 Locality 为 `F@z1,F@z2,F@z3`, 并指定 `primary_zone` 为 `z1`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3&primary_zone=z1';

       ```

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

      - 从数据备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2020-06-01 00:00:00`, 指定资源池为 `restore_pool`，以全量恢复方式进行恢复，同时恢复源租户的密钥信息。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool' WITH KEY FROM 'file:///data_backup_dest/key' ENCRYPTED BY '******';

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' WITH 'pool_list=restore_pool&concurrency=50';

       ```

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

   从 S3 备份路径与 S3 日志归档路径恢复租户 `mysql` 到指定时间戳 `2024-01-15 00:00:00`, 指定资源池为 `restore_pool`，以全量恢复方式进行恢复。

   ```sql
   ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***, s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***' UNTIL TIME='2024-01-15 00:00:00' WITH 'pool_list=restore_pool';

   ```

      - 从 OBS 备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2023-06-01 00:00:00`，指定资源池为 `restore_pool`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data/?host=obs.***.myhuaweicloud.com&access_id=***&access_key=***,s3://oceanbase-test-bucket/backup/archive/?host=obs.***.myhuaweicloud.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';

       ```
      - 从 GCS 备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2023-06-01 00:00:00`，指定资源池为 `restore_pool`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data/?host=https://storage.googleapis.com&access_id=***&access_key=***,s3://oceanbase-test-bucket/backup/archive/?host=https://storage.googleapis.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';

       ```
      - 从 COS 备份路径与日志归档路径恢复租户 `mysql` 到指定时间戳 `2023-06-01 00:00:00`，指定资源池为 `restore_pool`，以全量恢复方式进行恢复。

       ```sql
       obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test/backup/data?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***,s3://oceanbase-test/backup/archive?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';

       ```
 5. （可选）在待恢复租户对应的 Meta 租户创建成功后，如果需要加速恢复，可以通过配置项 `ha_high_thread_score` 配置恢复任务的并发线程数。

      1. 通过 `oceanbase.DBA_OB_TENANTS` 视图查看待恢复租户对应的 Meta 租户是否创建成功。

        语句如下：

        ```sql
        SELECT * FROM oceanbase.DBA_OB_TENANTS;

        ```

        查询结果中，`TENANT_NAME` 列中以 `META$` 开头的租户即为 Meta 租户，当 Meta 租户的状态为 `NORMAL` 时，则表示 Meta 租户创建成功。

        更多视图 `DBA_OB_TENANTS` 的字段说明信息请参见 [DBA_OB_TENANTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004477525)。
      2. 设置配置项 `ha_high_thread_score`。

        租户级配置项 `ha_high_thread_score` 用于设置高可用高优先级线程的当前工作线程数。默认值为 0，取值范围为 [0, 100]，建议修改为 10。有关配置项 `ha_high_thread_score` 的更多介绍，请参见 [ha_high_thread_score](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478869)。

        语句示例如下：

        ```sql
        ALTER SYSTEM SET ha_high_thread_score =10 TENANT = mysql;

        ```

## 后续操作

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

## 相关文档

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

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