Migrate shards requests
REST API requests to migrate database shards
| Redis Enterprise Software | 
|---|
| Method | Path | Description | 
|---|---|---|
| POST | /v1/shards/actions/migrate | Migrate multiple shards | 
| POST | /v1/shards/{uid}/actions/migrate | Migrate a specific shard | 
Migrate multiple shards
POST /v1/shards/actions/migrate
Migrates the list of given shard UIDs to the node specified by target_node_uid. The shards can be from multiple databases. This request is asynchronous.
For more information about shard migration use cases and considerations, see Migrate database shards.
Required permissions
| Permission name | Roles | 
|---|---|
| migrate_shard | admin cluster_member db_member | 
Request
Example HTTP request
POST /v1/shards/actions/migrate
Example JSON body
{
  "shard_uids": ["2","4","6"],
  "target_node_uid": 9,
  "override_rack_policy": false,
  "preserve_roles": false,
  "max_concurrent_bdb_migrations": 3
}
Request headers
| Key | Value | Description | 
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name | 
| Accept | application/json | Accepted media type | 
Request body
The request body is a JSON object that can contain the following fields:
| Field | Type | Description | 
|---|---|---|
| shard_uids | array of strings | List of shard UIDs to migrate. | 
| target_node_uid | integer | UID of the node to where the shards should migrate. | 
| override_rack_policy | boolean | If true, overrides and ignores rack-aware policy violations. | 
| dry_run | boolean | Determines whether the migration is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a 200 OKstatus code.  Otherwise, it returns a JSON object with an error code and description. | 
| preserve_roles | boolean | If true, preserves the migrated shards' roles after migration. | 
| max_concurrent_bdb_migrations | integer | The number of concurrent databases that can migrate shards. | 
Response
Returns a JSON object with an action_uid. You can track the action's progress with a GET /v1/actions/<action_uid> request.
Example JSON body
{
    "action_uid": "e5e24ddf-a456-4a7e-ad53-4463cd44880e",
    "description": "Migrate was triggered"
}
Status codes
| Code | Description | 
|---|---|
| 200 OK | No error. | 
| 400 Bad Request | Conflicting parameters. | 
| 404 Not Found | A list of shard UIDs is required and not given, a specified shard does not exist, or a node UID is required and not given. | 
| 500 Internal Server Error | Migration failed. | 
Migrate shard
POST /v1/shards/{int: uid}/actions/migrate
Migrates the shard with the given shard_uid to the node specified by target_node_uid. If the shard is already on the target node, nothing happens. This request is asynchronous.
For more information about shard migration use cases and considerations, see Migrate database shards.
Required permissions
| Permission name | Roles | 
|---|---|
| migrate_shard | admin cluster_member db_member | 
Request
Example HTTP request
POST /v1/shards/1/actions/migrate
Example JSON body
{
    "target_node_uid": 9,
    "override_rack_policy": false,
    "preserve_roles": false
}
Request headers
| Key | Value | Description | 
|---|---|---|
| Host | cnm.cluster.fqdn | Domain name | 
| Accept | application/json | Accepted media type | 
URL parameters
| Field | Type | Description | 
|---|---|---|
| uid | integer | The unique ID of the shard to migrate. | 
Request body
The request body is a JSON object that can contain the following fields:
| Field | Type | Description | 
|---|---|---|
| target_node_uid | integer | UID of the node to where the shard should migrate. | 
| override_rack_policy | boolean | If true, overrides and ignores rack-aware policy violations. | 
| dry_run | boolean | Determines whether the migration is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a 200 OKstatus code.  Otherwise, it returns a JSON object with an error code and description. | 
| preserve_roles | boolean | If true, preserves the migrated shards' roles after migration. | 
Response
Returns a JSON object with an action_uid. You can track the action's progress with a GET /v1/actions/<action_uid> request.
Example JSON body
{
    "action_uid": "e5e24ddf-a456-4a7e-ad53-4463cd44880e",
    "description": "Migrate was triggered"
}
Status codes
| Code | Description | 
|---|---|
| 200 OK | No error. | 
| 404 Not Found | Shard does not exist, or node UID is required and not given. | 
| 409 Conflict | Database is currently busy. |