首批通过分布式安全可靠测评,为关键业务系统打造
CREATE TENANT
更新时间:2025-12-30 11:03:58
描述
该语句用来创建租户。
说明
只有用 root 用户连接到 sys 租户才能使用 CREATE TENANT 语句创建租户。
语法
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] ...
参数解释
| 参数 | 描述 |
|---|---|
| tenant_name | 指定租户名。最长 128 个字符,只能有大小写英文字母,数字和下划线,而且必须以字母或下划线开头,并且不能是 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。 |
示例
创建一个 3 副本的 MySQL 租户。
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 兼容模式租户。
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='%';