Recover database requests
REST API requests for database recovery
Method | Path | Description |
---|---|---|
GET | /v1/bdbs/{uid}/actions/recover |
Get database recovery plan |
POST | /v1/bdbs/{uid}/actions/recover |
Recover database |
Get recovery plan
GET /v1/bdbs/{int: uid}/actions/recover
Fetches the recovery plan for a database. The recovery plan provides information about the recovery status, such as whether recovery is possible, and details on available files to use for recovery.
Required permissions
Permission name | Roles |
---|---|
view_bdb_recovery_plan | admin cluster_member cluster_viewer db_member db_viewer |
Request
Example HTTP request
GET /bdbs/1/actions/recover
URL parameters
Field | Type | Description |
---|---|---|
uid | integer | The unique ID of the database. |
Response
Returns a JSON object that represents the database's recovery plan, including recovery files and status.
Example response body
{
"data_files": [
{
"filename": "appendonly-1.aof",
"last_modified": 1721164863.8883622,
"node_uid": "1",
"shard_role": "master",
"shard_slots": "1-2048",
"shard_uid": "1",
"size": 88
},
{
"filename": "appendonly-2.aof",
"last_modified": 1721164863.8883622,
"node_uid": "2",
"shard_role": "slave",
"shard_slots": "2049-4096",
"shard_uid": "2",
"size": 88
}
],
"status": "ready"
}
Status codes
Code | Description |
---|---|
200 OK | No error. |
404 Not Found | Database UID does not exist. |
Recover database
POST /v1/bdbs/{int: uid}/actions/recover
Initiates recovery for a database in a recoverable state where all the database's files are available after cluster recovery.
Required permissions
Permission name | Roles |
---|---|
start_bdb_recovery | admin cluster_member db_member |
Request
The request body can either be empty or include a recovery plan.
If the request body is empty, the database will be recovered automatically:
-
Databases with no persistence are recovered with no data.
-
Persistent files such as AOF or RDB will be loaded from their expected storage locations where replica or primary shards were last active.
-
If persistent files are not found where expected but can be located on other cluster nodes, they will be used.
Example HTTP request
POST /bdbs/1/actions/recover
Example request body
{
"data_files": [
{
"filename": "appendonly-1.aof",
"node_uid": "1",
"shard_slots": "1-2048"
},
{
"filename": "appendonly-2.aof",
"node_uid": "2",
"shard_slots": "2049-4096"
}
],
"ignore_errors": false,
"recover_without_data": false
}
URL parameters
Field | Type | Description |
---|---|---|
uid | integer | The unique ID of the database to recover. |
Response
Returns a status code. Also returns a JSON object with an action_uid
in the request body if successful.
Status codes
Code | Description |
---|---|
200 OK | The request is accepted and is being processed. When the database is recovered, its status will become active . |
404 Not Found | Attempting to perform an action on a nonexistent database. |
409 Conflict | Database is currently busy with another action, recovery is already in progress, or is not in a recoverable state. |