新建租户 ========================= 您可以通过 SQL 语句或 OCP 来新建租户。 通过 SQL 语句新建 -------------------------------- OceanBase 数据库仅支持 MySQL 类型的租户。只有用 root 用户连接到 sys 租户(`root@sys`)才能执行 `CREATE TENANT` 命令去创建租户。创建新租户后,可以指定创建租户的类型和白名单。 下述展示了创建租户命令的语法: ```sql 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 租户)。 ```sql 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** : 下述语句展示了创建租户后,直接通过修改变量 `ob_tcp_innvited_nodes` 的值为 `%` 以便允许任何客户端 IP 连接该租户。如果不调整,默认租户的连接方式为只允许本机的 IP 连接数据库。 ```sql 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 创建新的租户。 **说明** 1. 登录 OCP。 默认进入 **集群概览** 页面。 2. 在 **集群概览** 页面的 **集群列表** 区域,选择待操作的集群并单击其集群名。 3. 在显示的页面的左侧导航栏上,单击 **租户管理** 。 4. 在页面右上角单击 **新建租户** 。 ![租户管理页面](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1702770061/p167363.png) 5. 填写基础信息。 1. 集群默认为当前集群。 2. 输入租户名称。 租户名称格式为英文大小写字母、数字和下划线的组合,长度为 2\~64 字符。 6. 填写 Zone 信息。 1. 为 z1、z2 和 z3 设置副本类型、Unit 规格和 Unit 数量。 集群选定后,页面会根据所选集群的 Zone 信息给出可配置的 Zone 列表;对于无需做副本分布的 Zone,可以通过最右侧的按钮删除该 Zone 条目。 其中: * 副本类型支持全功能型副本、只读型副本和日志型副本。 * OCP 内置了一套 Unit 规格;另外也可以在下拉列表的最下方单击 **新增规格** 按钮新增自定义规格。 * 指定该 Zone 下的 Unit 数量。 **注意** Unit 数量不能超过该 Zone 下 Server个数。 ![Zone 信息页面](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1702770061/p167368.png) 2. 对 Zone 优先级进行排序。 同时选择多个 Zone 添加到右侧后,可设置为同一优先级。 ![设置优先级排序](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1702770061/p167369.png) 7. 填写基本设置信息。 1. 设置管理员初始密码,支持随机生成。 * 对于 MySQL 模式,其管理员账户为 **root** 。 2. 设置租户模式。 * 仅支持 MySQL 租户模式。 3. 设置字符集与编码。 * 对于 MySQL 模式,可选字符集有:utf8mb4、binary、gbk、gb18030。缺省为 utf8mb4。 4. (可选)设置备注信息。 5. 设置 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 特殊说明: **%** 表示所有客户端都可以连接。 ![设置白名单](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1702770061/p167371.png) 8. 单击 **提交** 。