基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
CREATE TENANT
更新时间:2026-08-13 19:27:47
描述
CREATE TENANT 语句用于创建用户租户。OceanBase Database AI 仅支持创建用户租户,系统租户为集群创建时系统自动创建;Meta 租户是 OceanBase Database AI 内部自管理的租户,每创建一个用户租户会创建一个对应的 Meta 租户,其生命周期与用户租户保持一致。
通过 CREATE TENANT 语句创建的租户,默认其租户角色为 PRIMARY。
使用限制及注意事项
- [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)时需要为租户分配资源池,需要提前做好资源规划并创建好资源池,创建资源池的相关操作请参见 创建租户。
权限要求
仅 sys 租户的 root 用户(root@sys)可以创建租户,其他租户不支持创建租户。
语法
创建租户的语法如下:
CREATE TENANT [IF NOT EXISTS] tenant_name [tenant_option_list] [set_sys_var];
tenant_option_list:
tenant_option [, tenant_option...]
tenant_option:
LOCALITY [=] 'locality_description'
| PRIMARY_ZONE [=] primary_zone_name
| RESOURCE_POOL_LIST [=] (pool_name [, pool_name...])
| ENABLE_ARBITRATION_SERVICE [=] {True | False}
| {CHARACTER SET | CHARSET} [=] charset_name
| COLLATE [=] collation_name
| COMMENT [=] 'string'
set_sys_var:
{SET | SET VARIABLES | VARIABLES} var_name {TO | =} var_value [,var_name {TO | =} var_value...]
参数说明
| 参数 | 描述 |
|---|---|
| tenant_name | 指定租户名。最长 63 个字节,只能为大小写英文字母,数字和下划线,而且必须以字母或下划线开头,并且不能是 OceanBase Database AI 的关键字。 |
| IF NOT EXISTS | 如果要创建的租户名已存在,并且没有指定 IF NOT EXISTS,则会报错。 |
| LOCALITY | 描述副本在 Zone 间的分布情况。当前版本支持的副本类型为全能型副本:名称为 FULL,简称 F。有关全能型副本的详细介绍,参见 全能型副本。 示例: LOCALITY = 'F@z1,F@z2,F@z3' |
| PRIMARY_ZONE | 指定租户所在的 Primary Zone。主要支持以下取值:
如果创建租户时未指定 Primary Zone,则默认取值为 RANDOM。 |
| RESOURCE_POOL_LIST | 指定分配给租户的资源池列表,创建租户时必须指定该参数。 如果有多个资源池,要求多个资源池的 UNIT_NUM 个数一致。
注意同一个租户的多个资源池,其对应的 |
| ENABLE_ARBITRATION_SERVICE | 目前不需要关注。 |
| CHARACTER SET | CHARSET | 指定租户级的字符集,有关字符集的详细介绍,请参见 字符集。 |
| COLLATE | 创建用户租户时,指定租户级的字符序。有关字符序的详细介绍,参见 字符序 |
| set_sys_var | 指定租户级的系统变量值。有关 var_name 的详细介绍可参见下文 var_name。 |
| COMMENT | 填写注释,可选。 |
var_name
var_name 常用取值如下:
ob_compatibility_mode:用于指定租户的兼容模式,而且只能在创建时指定。目前仅支持指定为mysql,如果不指定ob_compatibility_mode则默认设置为mysql。ob_tcp_invited_nodes:用于指定租户连接的白名单,即允许哪些客户端 IP 连接该租户。示例中%表示所有客户端都可登录,如果不指定ob_tcp_invited_nodes的值,则默认租户的连接方式为仅允许本机的 IP 登录该租户。lower_case_table_names:用于控制大小写敏感,仅支持使用CREATE TENANT语句创建租户时指定,租户创建后不能通过 SQL 语句修改。ob_compatibility_control:用于控制存在 MySQL 兼容行为冲突的功能表现为何种行为。当前取值MYSQL5.7和MYSQL8.0,表示与 MySQL 5.7 的行为保持一致还是与 MySQL 8.0 的行为保持一致。创建用户租户时,需要指定该变量,并且只能在创建时指定,租户创建后不允许修改。如果不显式指定ob_compatibility_control,则默认其兼容行为与 MySQL 5.7 保持一致。read_only:指定租户为只读模式还是读写模式,如果不设置,默认为读写模式。
示例
创建一个名为 test_tenant 的用户租户,Primary Zone 为 zone1;zone2,zone3,资源池为 pool1,字符集为 utf8mb4,允许所有客户端 IP 连接数据库。
obclient [oceanbase]> CREATE TENANT IF NOT EXISTS test_tenant PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1'), CHARSET='utf8mb4' SET ob_tcp_invited_nodes TO '%';