
# 分片变更V3
#### 功能介绍
分片变更
#### URI
POST /v3/{project_id}/instances/{instance_id}/databases/{db_name}/migration
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                       |
|:---|:---|:---|:---|
| project_id  | 是    | String | 租户在某一region下的project ID。 |
| instance_id | 是    | String | DDM实例ID                  |
| db_name     | 是    | String | 逻辑库名称                    |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数                      | 是否必选 | 参数类型                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| data_nodes              | 是    | Array of [DataNode] objects | 关联的后端DN信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| switch_route_begin_time | 否    | String                                                         | 自动切换开始时间（hh:mm:ss格式，例如17:00:00），开始时间必须小于结束时间，且间隔不能小于60分钟。建议选择业务低峰期。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| switch_route_end_time   | 否    | String                                                         | 自动切换结束时间（hh:mm:ss格式，例如18:00:00），开始时间必须小于结束时间，且间隔不能小于60分钟。建议选择业务低峰期。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| new_shard_number        | 是    | String                                                         | 变更后的分片数量。 变更后的分片数或数据节点数要比变更前多。单实例最大分片数：64。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| is_exclusive            | 否    | Boolean                                                        | 是否独占节点，默认为false。 - 独占节点：true  - 非独占节点：false    - 独占式将从默认读写组中随机选择正常节点来变更，选择的节点资源全部用于分片变更，可以提高分片变更的性能。如果您担心节点独占影响您的业务，可以先进行计算节点扩容。  - 选择独占式变更模式时，默认组要开启负载均衡，且节点数大于1个。   |
   
 表4DataNode 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| id       | 是    | String | DN实例ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| user     | 是    | String | 数据库用户。 - 数据库账号所需权限：SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER WITH GRANT OPTION。   |
| password | 是    | String | 数据库密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 响应参数
**状态码：202**
表5响应Body参数 
| 参数     | 参数类型   | 描述   |
|:---|:---|:---|
| job_id | String | 任务id |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误消息。 |
   
**状态码：500**
表7响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误消息。 |
   
#### 请求示例
```
{
  "new_shard_number" : 9,
  "data_nodes" : [ {
    "id" : "7edae0250ebc464897bd92b8d3e8b769in01",
    "user" : "root",
    "password" : "Pa**********4"
  } ]
}
```
#### 响应示例
**状态码：202**
```
{
  "job_id":"xxxxxxxx-5d7e-4e1a-aeb4-9b1e6d0a4999"
}
```
**状态码：400**
bad request
```
{
  "error_msg" : "Parameter error.",
  "error_code" : "DBS.280001"
}
```
**状态码：500**
server error
```
{
  "error_msg" : "Parameter error.",
  "error_code" : "DBS.280001"
}
```
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 202 | ok           |
| 400 | bad request  |
| 500 | server error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ddm/ddm_api_01_0061.html)。
