---
title: "克隆租户 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: 克隆租户 通过克隆租户操作，您可以基于一个指定的租户克隆出一个新租户。克隆出来的新租户的 Unit 数量，以及 Unit 在各个 OBServer 节点上的分布，均与源租户保持一致。 使用限制 不允许对备租户执行克隆租户的操作。 不允许在 Switchover 过程中执行克隆租户的操作。 有关 Switchover …
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# 克隆租户

更新时间：2026-07-23 20:41:25

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/600.manage/200.tenant-management/600.common-tenant-operations/1120.clone-a-tenant.md)  

通过克隆租户操作，您可以基于一个指定的租户克隆出一个新租户。克隆出来的新租户的 Unit 数量，以及 Unit 在各个 OBServer 节点上的分布，均与源租户保持一致。

## 使用限制

- 不允许对备租户执行克隆租户的操作。
 - 不允许在 Switchover 过程中执行克隆租户的操作。

  有关 Switchover 的相关操作，请参见 [Switchover](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640362)。
 - 不允许在增加 LS、删除 LS 或 LS 属性变化的过程中执行克隆租户的操作。

  可以在系统租户（`sys` 租户）下通过以下语句 `SELECT * FROM oceanbase.CDB_OB_BALANCE_JOBS WHERE tenant_id = XXX;` 进行确认。
 - 不允许在 Transfer 过程中执行克隆租户的操作。

  可以在系统租户（`sys` 租户）下通过以下语句 `SELECT * FROM oceanbase.CDB_OB_BALANCE_JOBS WHERE tenant_id = XXX;` 确认是否有正在进行的 Transfer 任务。
 - 不允许在 Unit 迁移过程中执行克隆租户的操作。

  可以在系统租户（`sys` 租户）下通过以下语句 `SELECT * FROM oceanbase.DBA_OB_UNITS WHERE MIGRATE_FROM_SVR_PORT IS NOT NULL;` 确认是否有正在进行的 Unit 迁移任务。
 - 在通过减少资源池中的 `UNIT_NUM` 个数来对租户进行缩容时，不允许执行克隆租户的操作。
 - 当源租户中有 Unit 所在的 OBServer 节点不可用时，不支持执行租户克隆的操作。
 - 不允许在日志流副本有容灾任务时执行克隆租户的操作。

  确认当前租户的日志流副本是否有容灾任务的方法如下：

     - 系统租户通过指定当前租户的 `tenant_id` 查询 `CDB_OB_LS_REPLICA_TASKS` 视图，如果查询结果为非空，则表示该租户有容灾任务正在执行。
     - 用户租户通过查询 `DBA_OB_LS_REPLICA_TASKS`，如果查询结果为非空，则表示该租户有容灾任务正在执行。
 - 不允许在升级过程中执行克隆租户的操作。
 - 不允许对 OceanBase 数据库 V4.3.0 之前版本的租户执行克隆租户的操作。

## 注意事项

- 克隆出来的新租户与源租户之间存在严格的数据隔离和资源隔离。新租户的任何数据改动，均不会影响到源租户，同时源租户的任何数据改动也不会影响到新租户；新租户与源租户之间不会相互抢占 CPU、内存等资源。
 - 对于源租户与克隆出来的新租户，在初始状态下使用的是共享物理宏块，后续随着源租户与新租户各自的数据写入，两个租户的共享宏块逐渐减少，独占宏块逐渐增多，存储空间的占用也会逐步增加，需要及时关注 OBServer 节点上存储空间的占用情况。
 - 租户克隆任务执行过程中，不能进行以下操作：

     - 对源租户执行 Switchover 操作
     - 通过修改源租户的 `UNIT_NUM` 个数或 Primary Zone 第一优先级进行租户扩缩容操作
     - 对源租户执行增加副本、减少副本、调整副本分布等操作
     - 对源租户手动执行 Transfer 操作
     - 对源租户手动执行 Unit 迁移操作
     - 对源租户执行升级操作

  如果必须执行上述操作，您可以取消克隆任务后再执行，取消克隆任务的详细操作，请参见 [取消租户克隆](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639952)。

## 前提条件

租户克隆功能依赖于租户的日志归档功能，在执行租户克隆操作前，请确保源租户已开启日志归档模式，并且在租户克隆过程中，源租户不能关闭日志归档模式。为源租户设置归档目的端并开启日志归档模式的详细操作，请参见 [日志归档前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639996) 和 [开启归档模式](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640000)。

#### 注意

为租户开启归档模式后，如果希望立即执行克隆租户的操作，则需要执行 `ALTER SYSTEM MINOR FREEZE TENANT = tenant_name;` 语句对该租户发起一轮转储。有关手动触发转储的详细操作，请参见 [手动触发转储](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640496)。

## 背景信息

克隆租户功能适用于较多场景，部分场景如下：

- 当您需要进行应用程序的版本测试验证时，可以基于在线租户快速克隆出一个测试租户，使用测试租户来进行应用的测试验证。
 - 当您需要对数据库执行 DDL 等相对高风险的操作时，您可以：

     - 基于在线租户快速克隆出一个测试租户，在测试租户上运行一遍需要执行的 DDL 语句，验证运行结果。
     - 在执行 DDL 语句前，基于在线租户克隆出一个当前时间点的小规格租户，如果发现 DDL 语句的执行出现问题，可以快速进行数据回滚。

## 操作步骤

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   ```shell
   obclient -h172.30.xx.xx -P2883 -uroot@sys#cluster -p**** -A

   ```
 2. 执行以下语句，克隆租户。

   ```sql
   CREATE TENANT new_tenant_name FROM source_tenant_name
      WITH
      RESOURCE_POOL [=] resource_pool_name,
      UNIT [=] unit_config;

   ```

   相关参数说明如下：

      - `new_tenant_name`：克隆出来的新租户名。每次仅支持克隆一个租户，如果需要克隆多个租户，需要待该克隆任务结束后再克隆新的租户。
      - `source_tenant_name`：源租户名。
      - `resource_pool_name`：指定克隆出来的新租户的资源池名称。在进行租户克隆时，系统将会根据源租户的资源分布，为新租户自动创建资源池。
      - `unit_config`：指定克隆出来的新租户的 Unit 规格。可以根据需要，填写系统中已存在的 Unit 规格，也可以创建新的 Unit 规格。有关查询系统中已存在的 Unit 的详细操作，请参见 [查看资源规格](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640377)。

   基于租户 `mysql` 克隆出一个新租户 `clone_tnt` 的示例如下：

   ```sql
   obclient [oceanbase]> CREATE TENANT clone_tnt FROM mysql
        WITH
      RESOURCE_POOL = clone_tnt_pool,
        UNIT= S1_unit_config;

   ```

   本示例中，克隆出来的新租户的资源池为 `clone_tnt_pool`，Unit 规格为 `S1_unit_config`。克隆出来的租户的 Unit 数量及 Unit 在各个 OBServer 节点上的分布，均与源租户保持一致。
 3. 克隆任务执行过程中，您可以通过视图查看克隆任务的状态。

      - 查看正在执行的克隆任务

       ```sql
       obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_CLONE_PROGRESS\G

       ```

       查询结果如下：

       ```shell
       *************************** 1. row ***************************
               CLONE_JOB_ID: 1702211800546509768
                   TRACE_ID: YA4740B7C050F-00060C210F4A4848-0-0
           SOURCE_TENANT_ID: 1004
         SOURCE_TENANT_NAME: mysql
            CLONE_TENANT_ID: 1016
          CLONE_TENANT_NAME: clone_tnt
         TENANT_SNAPSHOT_ID: 1702211800802135214
       TENANT_SNAPSHOT_NAME: _inner_snapshot$1702211800702058206
           RESOURCE_POOL_ID: 1008
         RESOURCE_POOL_NAME: clone_tnt_pool
           UNIT_CONFIG_NAME: S1_unit_config
                RESTORE_SCN: 1702211802014048020
                     STATUS: CLONE_SYS_CREATE_TENANT
             CLONE_JOB_TYPE: FORK
           CLONE_START_TIME: 2023-12-10 20:36:40.551169
        CLONE_FINISHED_TIME: NULL
                   RET_CODE: NULL
              ERROR_MESSAGE: NULL
       1 row in set

       ```
      - 查看克隆任务历史

       ```sql
       obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_CLONE_HISTORY\G

       ```

       查询结果如下：

       ```shell
       *************************** 1. row ***************************
               CLONE_JOB_ID: 1702211800546509768
                   TRACE_ID: YA4740B7C050F-00060C210F4A4848-0-0
           SOURCE_TENANT_ID: 1004
         SOURCE_TENANT_NAME: mysql
            CLONE_TENANT_ID: 1016
          CLONE_TENANT_NAME: clone_tnt
         TENANT_SNAPSHOT_ID: 1702211800802135214
       TENANT_SNAPSHOT_NAME: _inner_snapshot$1702211800702058206
           RESOURCE_POOL_ID: 1008
         RESOURCE_POOL_NAME: clone_tnt_pool
           UNIT_CONFIG_NAME: S1_unit_config
                RESTORE_SCN: 1702211802014048020
                     STATUS: CLONE_SYS_SUCCESS
             CLONE_JOB_TYPE: FORK
           CLONE_START_TIME: 2023-12-10 20:36:40.551169
        CLONE_FINISHED_TIME: 2023-12-10 20:37:53.919247
                   RET_CODE: 0
              ERROR_MESSAGE: NULL
       1 row in set

       ```

## 后续处理

- 租户克隆任务执行完成后，克隆出来的新租户为备租户。您可以将该新租户继续作为备租户提供相关服务，也可以将新租户转为主租户提供服务。将备租户转为主租户的详细操作，请参见 [备租户转为主租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639985)。
 - 对于部署了仲裁服务的场景，默认情况下，克隆出来的租户未开启仲裁服务。如果需要开启仲裁服务，您可以在克隆完成后，为克隆出来的新租户开启仲裁服务，详细操作请参见 [为租户开启仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639895)。

## 相关文档

- [取消租户克隆任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639952)
 - [备租户转为主租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639985)
 - [为租户开启仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639895)

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