首批通过分布式安全可靠测评,为关键业务系统打造
创建租户
更新时间:2025-08-22 14:29:19
本文介绍如何通过 API 创建租户。
调用说明
接口约束
obshell Server 会对该 API 进行安全校验,详细介绍可参见 API 混合加密。
请求路径
POST /api/v1/tenant
请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| name | string | 是 | t1 | 设置待创建的租户名称。 |
| zone_list | []ZoneParam | 是 | 详情参见下文 ZoneParam 的数据结构 | 设置租户所使用的资源规格以及副本的分布情况。 |
| mode | string | 否 | MYSQL | 设置待创建租户的租户类型,仅支持设置为 MYSQL。 |
| primary_zone | string | 否 | RANDOM | 设置租户的 Primary Zone,指定租户提供读写服务的 Zone 的优先级。 |
| whitelist | string | 否 | % | 指定租户的访问白名单。 |
| root_password | string | 否 | 123456 | 设置租户的 root 用户密码。 |
| scenario | string | 否 | kv | 指定租户负载类型。可选值如下:
说明仅在 OceanBase 集群为 V4.3.0 或之后版本时,支持使用该选项设置租户负载类型。 |
| variables | map[string]interface{} | 否 | { "max_connections": 1000, "ob_query_timeout": 10000000 } |
设置租户的系统变量。 |
| parameters | map[string]interface{} | 否 | { "backup_data_file_size": "2G", "arbitration_timeout": "10s" } |
设置租户的配置项。 |
| charset | string | 否 | 无 | 指定租户使用的字符集。 |
| collation | string | 否 | 无 | 指定租户使用的字符序。 |
| read_only | bool | 否 | false | 指定租户是否可读。 |
| comment | string | 否 | 无 | 指定租户的信息。 |
| import_script | bool | 否 | false | 控制是否将时区数据和 GIS meta 数据导入到系统租户,默认为 false。
说明自 obshell V4.2.4.2 起支持配置该参数。 |
ZoneParam 的数据结构:
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| name | string | 是 | zone1 | 设置 Zone 的名称 |
| replica_type | string | 否 | FULL | 设置租户在 Zone 上的副本类型,可设置为 FULL(全功能型副本)或 READONLY(只读型副本),默认为 FULL。 |
| unit_config_name | string | 是 | s1 | 设置租户资源池在 Zone 上使用的资源规格。 |
| unit_num | int | 是 | 1 | 设置租户在 Zone 上的 unit 个数。 |
返回结果
| 参数 | 类型 | 说明 |
|---|---|---|
| successful | bool | 请求是否成功。 |
| timestamp | time.Time | 服务端完成请求的时间戳。 |
| duration | int | 服务端处理请求的时间(毫秒)。 |
| status | int | 符合 HTTP Status 规范的编码。 |
| traceId | string | 请求的 Trace ID。 |
| data | DagDetailDTO | 异步任务信息,详情参见下文 DagDetailDTO 信息的数据结构。 |
| error | ApiError | 请求产生的 Error,包含如下信息:
|
DagDetailDTO 信息的数据结构如下:
| 参数 | 类型 | 说明 |
|---|---|---|
| id | string | DAG 通用 ID。 |
| dag_id | int | DAG id,是记录在 OceanBase 数据库中的主键。 |
| name | string | DAG 名称。 |
| stage | int | DAG 的当前执行阶段。 |
| max_stage | int | DAG 执行过程中的总阶段数。 |
| state | string | DAG 执行状态。 |
| operator | string | DAG 执行操作类型。 |
| start_time | time.Time | DAG 执行起始时间。 |
| end_time | time.Time | DAG 执行结束时间。 |
| additional_data | map[string]any | DAG 其他数据。 |
| nodes | []NodeDetailDTO | DAG 内的所有 Node 信息,详见 获取 Node 的详细信息。 |
示例
请求示例
POST 10.10.10.1:2886/api/v1/tenant
{
"name": "t1",
"zone_list": [
{
"name": "zone1",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone2",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone3",
"unit_config_name": "s1",
"unit_num": 1
}
],
"mode": "MYSQL",
"read_only": false
}
返回示例
{
"successful": true,
"timestamp": "2024-10-12T17:35:23.85443063+08:00",
"duration": 64,
"status": 200,
"traceId": "42ee97601d3de292",
"data": {
"id": "18",
"dag_id": 8,
"name": "Create tenant t1",
"stage": 1,
"max_stage": 3,
"state": "READY",
"operator": "RUN",
"start_time": "0001-01-01T00:00:00Z",
"end_time": "0001-01-01T00:00:00Z",
"additional_data": null,
"nodes": null
}
}
相关文档
除通过命令行调用 API 接口外,还可以通过 SDK 方法调用 API。