Files
oceanbase/docs/docs-cn/6.administrator-guide/3.basic-database-management/5.tenants/3.create-a-tenant-1.md
2022-02-10 14:51:49 +08:00

265 lines
6.6 KiB
Markdown

新建租户
=========================
您可以通过 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. 单击 **提交**