---
title: "创建空备租户 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 创建空备租户 创建空备租户适用于主租户为新创建，或您可以确认该主租户当前拥有租户自创建后的完整日志的场景。 步骤一：创建访问视图的专用用户 由于备租户在连接主租户时，需要访问主租户的部分系统视图，因此需要有一个访问视图专用用户具备这部分系统视图的查询权限。您可以提供一个主租户上已有相关权限的用户，也可以在主租户上为备…
---
切换语言

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

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

# 创建空备租户

更新时间：2026-06-11 19:11:39

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/400.high-availability/300.physical-standby-database-disaster-recovery/200.create-a-standby-tenant/200.create-an-empty-standby-tenant.md)  

创建空备租户适用于主租户为新创建，或您可以确认该主租户当前拥有租户自创建后的完整日志的场景。

## 步骤一：创建访问视图的专用用户

由于备租户在连接主租户时，需要访问主租户的部分系统视图，因此需要有一个访问视图专用用户具备这部分系统视图的查询权限。您可以提供一个主租户上已有相关权限的用户，也可以在主租户上为备租户专门创建一个新的具备相关权限的用户。

备租户需要访问的系统视图如下：

- `GV$OB_LOG_STAT`：用于获取主租户的机器列表、副本服务的日志流 LSN 范围、角色（是否是Leader）等信息。

  关于 `GV$OB_LOG_STAT` 视图的更多介绍，请参见 [GV$OB_LOG_STAT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684496)。
 - `GV$OB_UNITS`：查询主租户的所有 Unit 信息，获取副本状态、Zone 以及 Region 等信息，用于过滤、获取和维护租户机器连接等。

  关于 `GV$OB_UNITS` 视图的更多介绍，请参见 [GV$OB_UNITS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684579)。
 - `GV$OB_PARAMETERS`: 用于查询主租户的 `cluster_id`、`tenant_id` 等服务必须的元信息。

  关于 `GV$OB_PARAMETERS` 视图的更多介绍，请参见 [GV$OB_PARAMETERS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684442)。
 - `DBA_OB_ACCESS_POINT`: 用于获取访问入口信息。在主租户迁移复制、容灾等场景下，若访问入口发生变化，备租户可以自动感知，不需要用户手动修改。

  关于 `DBA_OB_ACCESS_POINT` 视图的更多介绍，请参见 [DBA_OB_ACCESS_POINT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684753)。
 - `DBA_OB_TENANTS`：获取主租户的兼容模式。

  关于 `DBA_OB_TENANTS` 视图的更多介绍，请参见 [DBA_OB_TENANTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683982)。
 - `DBA_OB_LS`: 获取主租户的日志流列表以及日志流状态。

  关于 `DBA_OB_LS` 视图的更多介绍，请参见 [DBA_OB_LS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684711)。

创建访问视图专用用户并授权的具体操作如下。

#### 注意

OceanBase 数据库的用户名和权限信息是在主备租户之间进行同步，备租户自身不允许创建用户和授予权限。因此，如果当前备租户的源端是另外一个备租户，则需要在对应的主租户上创建访问视图专用用户并授予权限。

### MySQL 模式

1. 使用管理员用户登录到主租户。
 2. 执行以下命令，创建一个新用户。

   ```shell
   obclient [oceanbase]> CREATE USER rep_user IDENTIFIED BY '******';

   ```
 3. 给用户授权。

   以下示例是将 `oceanbase` 数据库下所有表的 `SELECT` 权限授予该用户。您也可以仅授予 `oceanbase` 库下 `GV$OB_LOG_STAT`、`GV$OB_UNITS`、`GV$OB_PARAMETERS`、`DBA_OB_ACCESS_POINT`、`DBA_OB_TENANTS`、`DBA_OB_LS` 等视图的 SELECT 权限。

   ```shell
   obclient [oceanbase]> GRANT SELECT ON oceanbase.* TO rep_user;

   ```

### Oracle 模式

1. 使用管理员用户登录到主租户。
 2. 创建一个新用户。

   ```shell
   obclient [SYS]> CREATE USER rep_user IDENTIFIED BY ******;

   ```
 3. 将角色 `STANDBY_REPLICATION` 授予新用户 `rep_user`。

   `STANDBY_REPLICATION` 为系统默认角色，该角色默认包含 `CREATE SESSION` 系统权限以及对以下视图的查询权限：

      - GV$OB_LOG_STAT
      - GV$OB_UNITS
      - GV$OB_PARAMETERS
      - DBA_OB_ACCESS_POINT
      - DBA_OB_TENANTS
      - DBA_OB_LS
      - DBA_OB_LS_HISTORY

   语句如下：

   ```shell
   obclient [SYS]> GRANT STANDBY_REPLICATION TO rep_user;

   ```

## 步骤二：创建备租户

1. 使用 `root` 用户登录待创建的备租户所在集群的 `sys` 租户。
 2. 执行以下命令，创建备租户所需的 Unit 规格。

   例如，创建一个 CPU 为 1 核且内存为 5 GB 的 Unit 规格 `unit1`。

   ```shell
   obclient [oceanbase]> CREATE RESOURCE UNIT unit1 MAX_CPU 1, MEMORY_SIZE = '5G';

   ```

   有关 Unit 规格的详细创建操作，请参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)。
 3. 创建备租户所需的资源池。

   例如，创建资源池 `pool_for_standby`。

   ```shell
   obclient [oceanbase]> CREATE RESOURCE POOL pool_for_standby UNIT = 'unit1', UNIT_NUM = 1, ZONE_LIST = ('zone1','zone2','zone3');

   ```

   有关资源池的详细创建操作，请参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)。
 4. 执行以下命令，创建空备租户。

   SQL 语句如下：

   ```sql
   CREATE STANDBY TENANT [IF NOT EXISTS] tenant_name
     LOG_RESTORE_SOURCE [=] string_value
     [tenant_characteristic_list];

   tenant_characteristic_list:
   tenant_characteristic [, tenant_characteristic...]

    tenant_characteristic:
      COMMENT 'string'  
    | PRIMARY_ZONE [=] zone_name  
    | RESOURCE_POOL_LIST [=](pool_name [, pool_name...])
    | LOCALITY [=] 'locality description'

   ```

   部分参数说明如下：

      - `tenant_name`：待创建的备租户名，必选。租户名不能是 OceanBase 数据库的关键字。
      - `IF NOT EXISTS`：如果待创建的租户名已存在，并且未指定 `IF NOT EXISTS`，则系统会报错，可选。
      - `LOG_RESTORE_SOURCE`：日志恢复源配置，必选。具体格式为： `'SERVICE=$ip_list USER=$user_name@$tenant_name PASSWORD=$password';`，该参数所需要填写的信息与 `ALTER SYSTEM SET LOG_RESTORE_SOURCE` 命令一致。

       其中：

            - `$ip_list`：主租户所在副本的 OBServer 节点的 IP 及 SQL 端口号（默认为 2881）。可以在主租户上通过查询 `DBA_OB_ACCESS_POINT` 视图获取。如果有多个 OBServer 节点信息，可以不用填写全部 OBServer 节点的信息。
            - `$user_name`：刚刚创建的访问视图的专用用户。
            - `$tenant_name`：待连接的主租户名。
            - `$password`：访问视图的专用用户对应的用户密码。
      - `COMMENT`：注释，可选。
      - `RESOURCE_POOL_LIST`：指定备租户所使用的资源池列表，必选。
      - `PRIMARY_ZONE`：指定备租户所在的 Primary Zone，可选。
      - `LOCALITY`：指定备租户的副本在 Zone 间的分布情况，可选。

   示例如下：

   ```shell
   obclient [oceanbase]> CREATE STANDBY TENANT IF NOT EXISTS standby_tenant LOG_RESTORE_SOURCE = "SERVICE=xx.xx.xx.1:2881;xx.xx.xx.2:2881;xx.xx.xx.3:2881 USER=rep
   _user@mysql PASSWORD=******" RESOURCE_POOL_LIST=('pool_for_standby');

   ```
 5. 执行以下命令，查看租户状态。

   ```shell
   obclient [oceanbase]> SELECT TENANT_NAME, TENANT_TYPE, CREATE_TIME, STATUS, TENANT_ROLE,SCN_TO_TIMESTAMP(SYNC_SCN) FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'standby_tenant';

   ```

   查询结果如下：

   ```shell
   +----------------+-------------+----------------------------+--------+-------------+----------------------------+
   | TENANT_NAME    | TENANT_TYPE | CREATE_TIME                | STATUS | TENANT_ROLE | SCN_TO_TIMESTAMP(SYNC_SCN) |
   +----------------+-------------+----------------------------+--------+-------------+----------------------------+
   | standby_tenant | USER        | 2023-04-14 21:06:48.787550 | NORMAL | STANDBY     | 2023-04-14 21:12:59.183293 |
   +----------------+-------------+----------------------------+--------+-------------+----------------------------+
   1 row in set

   ```

   根据查询结果，`TENANT_ROLE` 的值为 `STANDBY`, 且 `STATUS` 的值为 `NORMAL`，则表示备租户状态正常，备租户已创建成功。

   通过该方式创建的备租户在创建成功后，将自动进入持续同步模式。

## 相关文档

- [创建备租户前准备](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682873)
 - [使用备份恢复（带日志）功能创建备租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682872)
 - [使用 BACKUP DATABASE PLUS ARCHIVELOG 功能创建备租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682874)
 - [设置日志恢复源](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685752)

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