---
title: "CREATE TENANT - OceanBase 数据库 V4.2.0 | OceanBase 文档中心"
description: CREATE TENANT 描述 该语句用来创建租户。 此外，OceanBase 数据库还支持创建备租户。创建备租户命令是一个同步命令，在系统租户 Session 中执行，并使用 DDL 超时时间。 说明 只有用 root 用户连接到 sys 租户才能使用 CREATE TENANT 语句创建租户。 语法 创建租户的…
---
切换语言

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

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

# CREATE TENANT

更新时间：2025-12-30 11:03:51

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/100.system-tenants/800.create-tenant.md)  

## 描述

该语句用来创建租户。

此外，OceanBase 数据库还支持创建备租户。创建备租户命令是一个同步命令，在系统租户 Session 中执行，并使用 DDL 超时时间。

#### 说明

只有用 root 用户连接到 sys 租户才能使用 `CREATE TENANT` 语句创建租户。

## 语法

创建租户的语法如下：

```sql
CREATE TENANT [IF NOT EXISTS] tenant_name
     [tenant_characteristic_list] [opt_set_sys_var];

tenant_characteristic_list:
  tenant_characteristic [, tenant_characteristic...]

tenant_characteristic:
      COMMENT 'string'  
    | {CHARACTER SET | CHARSET} [=] charset_name
    | COLLATE [=]  collation_name
    | ZONE_LIST [=] (zone_name [, zone_name...])
    | PRIMARY_ZONE [=] zone_name  
    | DEFAULT TABLEGROUP [=] {NULL | tablegroup_name}
    | RESOURCE_POOL_LIST [=](pool_name [, pool_name...])
    | LOCALITY [=] 'locality description'

opt_set_sys_var:
  {SET | SET VARIABLES | VARIABLES} system_var_name = expr [,system_var_name = expr] ...

```

创建备租户的语法如下：

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

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`，则会报错。 |
| RESOURCE_POOL_LIST | 资源池列表，为创建租户时的必填项。 |
| DEFAULT TABLEGROUP | 设置租户默认表组信息，`NULL` 表示取消默认表组。 如果不指定，默认为 `NULL`。 |
| COMMENT | 指定注释。 |
| CHARACTER SET \| CHARSET | 指定字符集。 |
| COLLATE | 创建 MySQL 兼容模式的租户时，指定租户级的字符序。   #### 说明    创建 Oracle 兼容模式的租户时，不支持设置租户级字符序。如果设置了字符序，语法上不会报错，但设置并不会生效，系统会将其覆盖为字符集对应的默认字符序。 |
| PRIMARY_ZONE | 指定租户所在的 Primary Zone 名称。 |
| LOCALITY | 描述副本在 Zone 间的分布情况。 例如：`F@z1,F@z2,F@z3` 表示 `z1`、`z2`、`z3` 为全功能副本。 |
| system_var_name | 指定租户系统变量值。 其中 `ob_compatibility_mode` 用于指定租户的兼容模式（可选 MySQL 或 Oracle 模式），而且只能在创建时指定；如果不指定 `ob_compatibility_mode`，默认兼容模式为 MySQL。 |
| STANDBY | 创建备租户。此命令执行成功后，备租户将自动进入持续同步状态。 |
| LOG_RESTORE_SOURCE | 日志恢复源配置，详细信息参见 [设置日志恢复源](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000036005)。 |

## 示例

- 创建一个 3 副本的 MySQL 租户。

  ```sql
  obclient> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4', ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1');

  ```
 - 创建 Oracle 兼容模式租户。

  ```sql
  obclient> CREATE TENANT IF NOT EXISTS tenant1 ZONE_LIST=('zone1'), PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('pool1') SET ob_compatibility_mode='oracle', set ob_tcp_invited_nodes='%';

  ```
 - 在系统租户下创建备租户 `standby_tenant`。

     1. 创建一个 1C5G 的 Unit。

       ```shell
       obclient> CREATE RESOURCE UNIT 1C5G MAX_CPU 1, MEMORY_SIZE = '5G';
       Query OK, 0 rows affected

       ```
     2. 创建资源池 `pool_for_standby`。

       ```shell
       obclient> CREATE RESOURCE POOL pool_for_standby UNIT = '1C5G', UNIT_NUM = 1, ZONE_LIST = ('zone1', 'zone2', 'zone3');
       Query OK, 0 rows affected

       ```
     3. 获取设置 `LOG_RESTORE_SOURCE` 的信息并创建空的备租户。

       ```shell
       obclient> CREATE STANDBY TENANT IF NOT EXISTS standby_tenant LOG_RESTORE_SOURCE = 'SERVICE=11.xxx.xxx.xxx:17855;11.xxx.xxx.xxx:17857;11.xxx.xxx.xxx:17859 USER=test@mysql PASSWORD=******'  RESOURCE_POOL_LIST=('pool_for_standby');
       Query OK, 0 rows affected

       ```
     4. 通过视图 `DBA_OB_TENANTS` 查看租户状态，如果字段 `TENANT_ROLE` 为 `STANDBY`, `STATUS` 为 `NORMAL`，则表示租户状态正常，创建已成功。

       ```shell
       obclient> SELECT TENANT_NAME, TENANT_TYPE, CREATE_TIME, STATUS, TENANT_ROLE,SCN_TO_TIMESTAMP(SYNC_SCN)  FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'standby_tenant';
       +----------------+-------------+----------------------------+--------+-------------+----------------------------+
       | 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

       ```

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