3.cluster-information.md•7.67 kB
```markdown
# OceanBase集群管理API文档
## 集群管理
### 1. 创建OceanBase集群
**功能**:创建OceanBase集群
**权限**:需具备创建集群的权限
**路径**:`POST /api/v2/ob/clusters`
**请求参数**:
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---------------------|--------------|------|-------------------------------------------------------------------------|----------------------------------------------------------------------|
| name | String | 是 | "terran" | 集群名称 |
| rpmName | String | 是 | "oceanbase-2.2.73-20201211175814.el7.x86_64.rpm" | RPM包名 |
| type | String | 是 | "PRIMARY" | 集群类型(PRIMARY/STANDBY) |
| password | String | 是 | "xxxxx" | sys租户root账号密码 |
| zones | Array[Object]| 是 | `[{"name":"zone1","idcName":"hz2","servers":[1]}]` | Zone配置列表 |
| zones[].name | String | 是 | "zone1" | Zone名称 |
| zones[].idcName | String | 是 | "hz2" | 机房名称 |
| zones[].servers | Array[Long] | 是 | `[1]` | 主机ID列表 |
**返回结果**:基础数据结构(包含异步任务信息)
**示例**:
```json
{
"type": "PRIMARY",
"name": "terran",
"password": "xxxxx",
"rpmName": "oceanbase-2.2.73-20201211175814.el7.x86_64.rpm",
"zones": [
{
"name": "zone1",
"idcName": "hz2",
"servers": [1]
}
]
}
```
---
### 2. 查询集群列表
**功能**:获取OCP管理的OceanBase集群信息
**权限**:需至少为CLUSTER_VIEWER角色
**路径**:`GET /api/v2/ob/clusters`
**请求参数**:
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|-----------------|--------------|------|---------|----------------------------------------------------------------------|
| page | Integer | 否 | 1 | 分页页码(默认1) |
| size | Integer | 否 | 10 | 分页大小(默认10,最大2000) |
| sort | String | 否 | "name,asc" | 排序规则(如"name,asc") |
| name | String | 否 | "foo" | 按集群名关键词模糊查询(不区分大小写) |
| status | Array[String]| 否 | ["RUNNING","DELETING"] | 集群状态过滤(取值:RUNNING/CREATING/DELETING/STARTING/...) |
| withStandby | Boolean | 否 | true | 是否包含备集群(true仅返回主集群,false返回所有) |
**返回数据结构**:
```json
{
"data": {
"contents": [ // 集群信息数组
{
"id": 1000002,
"name": "test",
"status": "RUNNING",
"zones": [...] // Zone列表
}
],
"page": { ... }
}
}
```
---
### 3. 升级集群
**功能**:升级OceanBase集群
**路径**:`POST /api/v2/ob/clusters/{id}/upgrade`
**路径参数**:
| 参数 | 类型 | 必选 | 示例值 |
|------|--------|------|---------|
| id | Long | 是 | 22 |
**请求参数**:
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|-----------------|---------|------|-------------------------------------------------------------------------|---------------|
| rpmFileName | String | 是 | "oceanbase-2.2.75-20210108170301.el7.x86_64.rpm" | 新版本RPM包名 |
**返回结果**:基础数据结构(包含异步任务ID和状态)
---
### 4. 停止集群
**路径**:`POST /api/v2/ob/clusters/{id}/stop`
**参数**:集群ID(Long类型)
---
### 5. 重启集群
**路径**:`POST /api/v2/ob/clusters/{id}/restart`
---
### 6. 删除集群
**路径**:`DELETE /api/v2/ob/clusters/{id}`
---
### 7. 获取集群参数列表
**路径**:`GET /api/v2/ob/clusters/{id}/parameters`
**参数**:集群ID(Integer类型)
**返回数据**:包含参数名称、类型、值范围等详细信息的ClusterParameter对象数组
---
### 8. 修改集群密码
**路径**:`POST /api/v2/ob/clusters/{id}/changePassword`
**参数**:
- `newPassword`(必填)
- `saveToCredential`(可选,默认false)
---
## Zone管理
### 1. 新建Zone
**路径**:`POST /api/v2/ob/clusters/{id}/zones`
**参数**:
- name(String)
- idcName(String)
- servers(Array[Long])
---
### 2. 查询Zone列表
**路径**:`GET /api/v2/ob/clusters/{id}/zones`
---
### 3. 启动/停止/重启Zone
| 操作 | 方法 | 路径 |
|--------------|---------|---------------------------------------|
| 启动 | POST | `/api/v2/ob/clusters/{id}/zones/{zoneName}/start` |
| 停止 | POST | `/api/v2/ob/clusters/{id}/zones/{zoneName}/stop` |
| 重启 | POST | `/api/v2/ob/clusters/{id}/zones/{zoneName}/restart` |
---
## 服务器节点管理
### 1. 添加服务器
**路径**:`POST /api/v2/ob/clusters/{id}/servers`
**参数**:
- zoneName(目标Zone名称)
- servers(主机ID数组)
---
### 2. 删除服务器
**路径**:`POST /api/v2/ob/clusters/{id}/servers/batchDelete`
**参数**:servers(主机ID数组)
---
### 3. 替换服务器
**路径**:`POST /api/v2/ob/clusters/{id}/servers/{serverId}/replace`
**参数**:hostId(新主机ID)
---
### 4. 启动/停止/重启单节点
| 操作 | 方法 | 路径 |
|--------------|---------|---------------------------------------------------|
| 启动 | POST | `/api/v2/ob/clusters/{id}/servers/{serverId}/start` |
| 停止 | POST | `/api/v2/ob/clusters/{id}/servers/{serverId}/stop` |
| 重启 | POST | `/api/v2/ob/clusters/{id}/servers/{serverId}/restart` |
---
## 参数管理
### 1. 获取参数列表
**路径**:`GET /api/v2/ob/clusters/{id}/parameters`
**返回结构**:包含参数名称、分类、默认值、当前值等信息的ClusterParameter对象数组
### 2. 修改参数
**路径**:`PUT /api/v2/ob/clusters/{id}/parameters`
**参数**:参数名值对数组(如`[{"name":"param1","value":"value1"}]`)
### 3. 获取参数元数据
**路径**:`GET /api/v2/ob/clusters/parameterInfo`
**返回**:所有参数的版本、类型、允许值等元数据信息
---