您可以通过 SQL 语句或 OCP 来新建租户。
通过 SQL 语句新建
OceanBase 数据库支持两种类型的租户: MySQL 和 Oracle。只有用 root 用户连接到 sys 租户(root@sys
)才能执行 CREATE TENANT
命令去创建租户。创建新租户后,可以指定创建租户的类型和白名单。
下述展示了创建租户命令的语法:
CREATE TENANT [IF NOT EXISTS] tenantname
[tenant_characteristic_list]
[tenant_variables_list]
tenant_characteristic_list:
tenant_characteristic [, tenant_characteristic...]
tenant_characteristic:
COMMENT 'string'
| {CHARACTER SET | CHARSET} [=] value
| REPLICA_NUM [=] num
| ZONE_LIST [=] (zone [, zone])
| PRIMARY_ZONE [=] zone
| RESOURCE_POOL_LIST [=] (poolname)
| {READ ONLY | READ WRITE}
tenant_variables_list:
SET sys_variables_list
| SET VARIABLES sys_variables_list
| VARIABLES sys_variables_list
sys_variables_list:
sys_variables [, sys_variables...]
sys_variables:
sys_variable_name = expr
参数说明:
如果要创建的租户名已存在,并且没有指定
IF NOT EXISTS
,则会出现错误。租户名的合法性和变量名一致,最长 30 个字符,字符只能是大小写英文字母、数字和下划线,而且必须以字母或下划线开头,并且不能是 OceanBase 数据库的关键字。
在租户下可以指定资源池。
RESOURCE_POOL_LIST
为创建租户时的必填项。CREATE TENANT
命令中的RESOURCE_POOL_LIST
中,暂时仅支持一个资源池。
示例 1:
下述语句展示了创建名为 test_tenant
的一个 3 副本的 MySQL 租户(创建新租户默认是 MySQL 租户)。
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1')
示例 2:
下述语句展示了创建名为 test_tenant
的一个 3 副本 Oracle 租户。通过参数 ob_compatibility_mode
设置租户模式,并且必须使用 OBClient 或 ODC 连接 Oracle 租户进行创建。
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1') SET ob_compatibility_mode='oracle'
示例 3:
下述语句展示了创建租户后,直接通过修改变量 ob_tcp_innvited_nodes
的值为 %
以便允许任何客户端 IP 连接该租户。如果不调整,默认租户的连接方式为只允许本机的 IP 连接数据库。
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1') SET ob_tcp_invited_nodes='%'
示例说明如下:
primary_zone
指该租户的表的分区 Leader 所在的 Zone ,例如,primary_ zone =' zone1; zone2, zone3'
表示该租户的表的分区 Leader 在zone1
上, 这时通过分号来分隔。zone2
和zone3
通过逗号分割,表示zone2
和zone3
是同一优先级,但是比zone1
优先级低。primary_zone
设置时,其值可以为RANDOM
(必须大写),表示随机。
普通租户的内存最小规格必须大于等于 5 GB,否则创建租户失败。如果希望建立租户进行非常简单的功能测试,可以修改参数 alter system __min_full_resource_pool_memory
的值为 1073741824
来允许以最小 1 GB 内存的规格创建租户。
通过 OCP 新建
可以通过 OCP 创建新的租户。
说明
不同 OCP 版本的操作界面可能不同,本节以 OCP V2.5.0 版本为例提供操作指导,OCP 其他版本的操作请参考对应版本的《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。
对于 Oracle 模式,其管理员账户为 SYS。密码格式:长度为 8 ~ 32,且至少包含 2 个数字、2 个大写字母、2 个小写字母和 2 个特殊字符,支持的特殊字符为 ._+@#$%。
设置租户模式。
支持 Oracle 和 MySQL 租户模式。
所选集群的 OceanBase 数据库版本在 V2.1.x 及以上时才支持 Oracle 租户模式。
设置字符集与编码。
对于 MySQL 模式,可选字符集有:utf8mb4、binary、gbk、gb18030。缺省为 utf8mb4。
对于 Oracle 模式,可选字符集有:utf8mb4、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
特殊说明:% 表示所有客户端都可以连接。
- 单击 提交。