4.tenant-information.md•3.81 kB
# OceanBase租户管理API文档
---
## 一、租户生命周期管理
### 1. 创建租户(异步)
**功能**:在集群中创建新租户
**接口**:`POST /api/v2/ob/clusters/{id}/tenants/createTenant`
**Path参数**:
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---------|--------|------|--------|---------------|
| id | Long | 是 | 1 | 集群ID |
**请求参数**:
```json
{
"name": "foo",
"mode": "MYSQL",
"primaryZone": "zone1,zone2;zone2",
"charset": "utf8mb4",
"collation": "utf8mb4_general_ci",
"description": "bar",
"whitelist": "%",
"rootPassword": "xxxxx",
"saveToCredential": true,
"zones": [
{
"name": "zone1",
"replicaType": "FULL",
"resourcePool": {
"unitSpecName": "S1",
"unitCount": 1
}
}
]
}
```
**返回结果**:包含异步任务ID的基础结构(DAG任务信息)
---
### 2. 查询租户列表
**集群租户列表**:`GET /api/v2/ob/clusters/{clusterId}/tenants`
**集群租户详情**:`GET /api/v2/ob/clusters/{clusterId}/tenants/{tenantId}`
**全平台租户列表**:`GET /api/v2/ob/tenants`
---
### 3. 修改租户
#### 副本管理
- **修改副本**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/modifyReplica`
- **增加副本**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/addReplica`
- **删除副本**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/deleteReplica`
**请求参数示例**(以修改副本为例):
```json
[
{
"zoneName": "zone1",
"replicaType": "FULL",
"resourcePool": {
"unitSpecName": "S1",
"unitCount": 1
}
}
]
```
#### 其他修改
- **修改密码**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/changePassword`
- **修改白名单**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/modifyWhitelist`
- **修改Zone优先级**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/modifyPrimaryZone`
---
### 4. 删除租户
**接口**:`DELETE /api/v2/ob/clusters/{id}/tenants/{tenantId}`
**返回结果**:基础成功状态结构
---
## 二、租户状态管理
### 1. 锁定/解锁租户
- **锁定**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/lock`
- **解锁**:`POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/unlock`
---
## 三、租户参数与配置
### 1. 参数操作
- **获取参数列表**:`GET /api/v2/ob/clusters/{id}/tenants/{tenantId}/parameters`
- **修改参数**:`PUT /api/v2/ob/clusters/{id}/tenants/{tenantId}/parameters`
**参数结构示例**:
```json
[
{
"name": "ob_default_replica_num",
"value": "2"
}
]
```
### 2. Unit管理
- **查询Unit列表**:`GET /api/v2/ob/clusters/{clusterId}/tenants/{tenantId}/units`
- **删除Unit**:`DELETE /api/v2/ob/clusters/{id}/tenants/{tenantId}/units/{unitId}`
---
## 四、基础数据结构说明
### 1. 基础返回结构
```json
{
"data": { /* 业务数据 */ },
"successful": true,
"timestamp": "2021-03-01T15:12:07.419+08:00",
"duration": 406,
"status": 200,
"traceId": "71f24180979c487b",
"server": "a83ad33525"
}
```
### 2. 租户详情结构
```json
{
"id": 14000001,
"name": "sys",
"clusterId": 12000001,
"zones": [
{
"name": "zone1",
"replicaType": "FULL",
"resourcePool": {
"unitConfig": {
"minCpuCoreCount": 2.5,
"maxMemorySize": 9
}
}
}
]
}
```
---
## 六、附录
### 1. 状态码说明
| 状态码 | 含义 |
|--------|--------------------------|
| 200 | 成功 |
| 401 | 未授权 |
| 403 | 权限不足 |
### 2. 副本类型枚举
```text
FULL: 完整副本
LOGONLY: 只读日志副本
READONLY: 只读副本
```