首批通过分布式安全可靠测评,为关键业务系统打造
新建租户
更新时间:2026-06-02 15:16:16
您可以通过 SQL 语句、OCP 或 OBD 来新建租户。
简介
在 OceanBase 数据库中可以通过以下三种方式新建租户:
通过 SQL 语句新建租户
通过 OCP 新建租户
通过 OBD 新建租户
注意
新建租户后默认密码为空,需修改租户密码,以保证数据安全。
通过 SQL 语句新建租户
OceanBase 数据库仅支持一种租户: MySQL 租户。只有 root 用户连接到 sys 租户(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} [=] charsetname
| COLLATE [=] collationname
| ZONE_LIST [=] (zone [, zone...])
| PRIMARY_ZONE [=] zone
| DEFAULT TABLEGROUP [=] {NULL | tablegroup}
| RESOURCE_POOL_LIST [=](poolname [, poolname...])
| LOCALITY [=] 'locality description'
opt_set_sys_var:
{SET | SET VARIABLES | VARIABLES} system_var_name = expr [,system_var_name = expr] ...
语法中参数说明如下表所示。
| 参数 | 描述 |
|---|---|
| IF NOT EXISTS | 可选参数,如果要创建的租户名已存在,并且没有指定 IF NOT EXISTS,则会出现错误。 |
| tenant_name | 租户名的合法性和变量名一致,最长 128 个字符,字符只能是大小写英文字母、数字和下划线,而且必须以字母或下划线开头,并且不能是 OceanBase 数据库的关键字。 OceanBase 数据库中所支持的关键字请参见 预留关键字。 |
| RESOURCE_POOL_LIST | 创建租户时的必填项,创建租户时仅支持分配一个资源池。 如果需要为租户添加多个资源池,则可以待租户创建成功后通过修改租户资源池的方式再进行添加。修改租户资源池的相关操作,请参见 将资源池分配给租户。 注意 在分配资源池时,普通租户的内存的最小规格必须大于等于 5 GB,否则租户会创建失败。如果您希望创建一个租户进行非常简单的功能测试,可以修改参数 |
| DEFAULT TABLEGROUP | 用于指定租户默认的表组信息,NULL 表示取消默认表组。如果不指定,默认为 NULL。 |
| COMMENT | 指定对该租户的注释信息。 |
| CHARACTER SET | CHARSET | 指定租户的字符集。 字符集相关的介绍信息请参见 字符集。 |
| COLLATE | 指定租户的字符序。 字符序相关的介绍信息请参见 字符序。 |
| ZONE_LIST | 指定租户的 Zone 列表。 |
| PRIMARY_ZONE | 指定租户的 Primary Zone。Primary Zone 表示 Leader 副本的偏好位置。指定 Primary Zone 实际上是指定了 Leader 更趋向于被调度到哪个 Zone 上。 Primary Zone 实际上是一个 Zone 的列表,列表中包含多个 Zone。当 Primary Zone 列表包含多个 Zone 时,使用分号(;)分隔的 Zone 具有从高到底的优先级;使用逗号(,)分隔的 Zone 具有相同优先级。例如,primary_ zone =' zone1; zone2, zone3' 表示该租户的表的分区 Leader 在 zone1 上, zone1 比 zone2、zone3 的优先级高,zone2 和 zone3 是同一优先级。
注意 在指定 |
| LOCALITY | 指定副本在 Zone 间的分布情况。 例如:F@z1,F@z2,F@z3,R@z4 表示 z1、z2、z3 为全功能副本,z4 为只读副本。 |
| system_var_name | 可选,指定租户的系统变量值,其中: 变量 ob_compatibility_mode 用于指定租户的兼容模式,仅可选择 MySQL 模式,并且只能在创建时指定。如果不指定 ob_compatibility_mode,则默认兼容模式为 MySQL 模式。变量 ob_tcp_invited_nodes 用于指定租户连接的白名单,即允许哪些客户端 IP 连接该租户。如果不调整 ob_tcp_invited_nodes 的值,则默认租户的连接方式为只允许本机的 IP 连接数据库。 您也可以待租户创建成功后再修改其白名单设置,修改白名单的具体操作请参见 设置和查看租户白名单。 OceanBase 数据库中,租户可设置的系统变量请参见 系统变量。 |
使用示例
创建名为
test_tenant的一个 3 副本的租户。obclient> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4', ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') ;创建租户,并指定允许任何客户端 IP 连接该租户。
obclient> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4',ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') SET ob_tcp_invited_nodes='%' ;
确认租户是否创建成功
创建租户后,您可以通过查询 oceanbase.gv$tenant 视图来确认租户是否创建成功。
使用
root用户登录到数据库的sys租户。执行以下语句,查看当前集群中是否有新创建的租户。
示例如下:
obclient> SELECT * FROM oceanbase.gv$tenant; +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+ | tenant_id | tenant_name | zone_list | primary_zone | collation_type | info | read_only | locality | +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+ | 1 | sys | zone1 | zone1 | 0 | system tenant | 0 | FULL{1}@zone1 | | 1001 | MySQL | zone1 | zone1 | 0 | | 0 | FULL{1}@zone1 | +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+ 2 rows in set
通过 OCP 新建租户
您可以通过 OCP 新建租户。新建租户有以下两种方式:
在租户页面创建租户。
在指定集群的租户管理页面创建租户。
本节为您展示通过指定集群的租户管理页面创建租户的操作步骤。
前提条件
在创建租户前,请确认当前登录用户具备 CLUSTER_MANAGER 角色权限,如果当前用户没有该角色权限,请联系管理员为您添加相应角色,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 编辑用户 。
操作步骤
登录 OCP。
单击左侧导航栏的 集群 。
在 集群列表 区域选择待操作的集群并单击其集群名。
在显示的页面的左侧导航栏上,单击 租户管理 。
在页面右上角单击 新建租户 。

填写 基础信息 。
集群默认为当前集群。
请输入 租户名称 。租户名称支持英文大小写字母、数字和下划线,长度为 2~64 字符。
填写 Zone 信息 。
为 z1、z2 和 z3 设置副本类型、Unit 规格和 Unit 数量。
集群选定后,页面会根据所选集群的 Zone 信息给出可配置的 Zone 列表;对于无需做副本分布的 Zone,可以通过最右侧的按钮删除该 Zone 条目。
副本类型支持全功能型副本、只读型副本和日志型副本。
OCP 内置了一套 Unit 规格;另外也可以在下拉列表的最下方点击按钮新增自定义规格。
指定该 Zone 下的 Unit 数量。需要注意的是,unit 数量不能超过该 Zone 下 server个数。

对 Zone 优先级 进行排序。同时选择多个 Zone 穿梭到右侧后,可设置为同一优先级。

填写 基本设置 。
设置 管理员初始密码 。支持随机生成。
对于 MySQL 模式,其管理员账户为"root"。
设置 租户模式 。
社区版 OCP 仅支持 MySQL 模式。
设置 字符集 。
对于 MySQL 模式,可选字符集有:utf8mb4, binary, gbk, gb18030。缺省为utf8mb4。
(可选)设置 备注 。
设置 IP 地址白名单 。
此处可以指定该租户允许登录的客户端列表。如果不指定,默认配置为"%",允许所有的客户端。自定义白名单列表时需要注意,OCP 机器地址以及所依赖的 OBProxy 地址必须在此名单中,否则 OCP 将无法管理此租户。
默认配置:所有 IP 都可访问。
自定义:设置 IP 白名单,白名单中的IP才能访问。
白名单格式说明:
IP地址,示例:10.10.10.10,10.10.10.11
子网/掩码,示例:10.10.10.0/24
模糊匹配,示例:10.10.10.% 或 10.10.10._
多种格式混合,示例:10.10.10.10,10.10.10.11,10.10.10.%,10.10.10._,10.10.10.0/24
说明
% 表示所有客户端都可以连接。

单击 提交 。
通过 OCP 确认租户是否创建成功
创建完成后,您可以通过以下操作确认租户是否创建成功。
回到 集群概览 页面。
在 集群列表 区域,单击刚刚操作的集群名。
在显示的左侧导航栏上,单击 租户管理 。
在租户列表中查看是否有新创建的租户。
如果有,则表示租户创建成功。
通过 OBD 新建租户
登录到安装 OBD 的机器的操作用户下。
运行如下命令创建租户:
obd cluster tenant create <deploy_name> [-n <tenant_name>] [flags]其中,
deploy_name为待创建租户的集群名,tenant_name为待创建的租户名。该命令仅对 OceanBase 数据库有效。该命令会自动创建资源单元和资源池,用户不需要手动创建。详细信息请参考 obd cluster tenant create 命令。