分片故障转移请求
用于对数据库分片进行故障转移的 REST API 请求
Redis 企业软件 |
---|
方法 | 路径 | 描述 |
---|---|---|
发布 | /v1/shards/actions/failover |
故障转移多个分片 |
发布 | /v1/shards/{uid}/actions/failover |
故障转移特定分片 |
故障转移多个分片
POST /v1/shards/actions/failover
对shard_uids
,并将其副本提升为主分片。此请求是异步的。
集群会自动管理故障转移以确保高可用性。仅将此故障转移 REST API 请求用于测试和计划内维护。
所需权限
权限名称 | 角色 |
---|---|
failover_shard | admin cluster_member db_member |
请求
HTTP 请求示例
POST /v1/shards/actions/failover
示例 JSON 正文
{
"shard_uids": ["2","4","6"]
}
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 primary shard UIDs to fail over. The shards must belong to the same database.
dead_uids
array of strings
Primary shards to avoid stopping. Optional.
dead_nodes
array of strings
Nodes that should not be drained or used for promoted replica shards. Optional.
dry_run
boolean
Determines whether the failover is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a 200 OK
status code. Otherwise, it returns a JSON object with an error code and description. Optional.
force_rebind
boolean
Rebind after promotion. Optional.
redis_version_upgrade
string
New version of the promoted primary shards. Optional.
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": "Failover was triggered"
}
Status codes
Code
Description
200 OK
No error.
400 Bad Request
Shard is a replica or the specified failover shards are not in the same database.
404 Not Found
A list of shard UIDs is required and not given, or a specified shard does not exist.
409 Conflict
Database is currently busy.
Error codes
When errors are reported, the server may return a JSON object with error_code
and message
field that provide additional information. The following are possible error_code
values:
Code
Description
db_busy
Database is currently busy.
failover_shards_different_bdb
All failover shards should be in the same database.
shard_is_slave
Shard is a replica.
shard_not_exist
Shard does not exist.
shard_uids_required
List of shard UIDs is required and not given.
Fail over shard
POST /v1/shards/{int: uid}/actions/failover
Performs failover on the primary shard with the specified shard_uid
, and promotes its replica shard to a primary shard. This request is asynchronous.
The cluster automatically manages failover to ensure high availability. Use this failover REST API request only for testing and planned maintenance.
Required permissions
Permission name
Roles
failover_shard
admin
cluster_member
db_member
Request
Example HTTP request
POST /v1/shards/1/actions/failover
Example JSON body
{
"force_rebind": true
}
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 fail over.
Request body
The request body is a JSON object that can contain the following fields:
Field
Type
Description
dead_uid
string
Primary shard to avoid stopping. Optional.
dead_nodes
array of strings
Nodes that should not be drained or used for promoted replica shards. Optional.
dry_run
boolean
Determines whether the failover is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a 200 OK
status code. Otherwise, it returns a JSON object with an error code and description. Optional.
force_rebind
boolean
Rebind after promotion. Optional.
redis_version_upgrade
string
New version of the promoted primary shards. Optional.
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": "Failover was triggered"
}
Status codes
Code
Description
200 OK
No error.
400 Bad Request
Shard is a replica.
404 Not Found
Specified shard does not exist.
409 Conflict
Database is currently busy.
Error codes
When errors are reported, the server may return a JSON object with error_code
and message
field that provide additional information. The following are possible error_code
values:
Code
Description
db_busy
Database is currently busy.
shard_is_slave
Shard is a replica.
shard_not_exist
Shard does not exist.
On this page