Get Backup Repository Information
Description
The Backup Service REST API lets you list and get information about the active, imported, and archived backup repositories.
HTTP Methods and URIs
List all backup repositories with a specific status:
GET /api/v1/cluster/self/repository/{REPO_STATUS}
Get overview information about a specific backup repository:
GET /api/v1/cluster/self/repository/{REPO_STATUS}/{REPO_NAME}
Get detailed information about a specific backup repository including backup names and dates, buckets, items, and mutations:
GET /api/v1/cluster/self/repository/{REPO_STATUS}/{REPO_NAME}/info
These URIs are only available from the Backup Service port (8097 by default) on nodes running the Backup Service. |
Name | Description | Schema |
---|---|---|
|
The current status of the repository. |
One of the following:
|
|
The name of the backup repository |
String |
Curl Syntax
curl -X GET $BACKUP_SERVICE_NODE:$BACKUP_SERVICE_PORT/cluster/self/\ repository/$REPO_STATUS -u $USERNAME:$PASSWORD curl -X GET <backup-node-ip-address-or-domain-name>:8097/cluster/self/\ repository/$REPO_STATUS/$REPO_NAME -u $USERNAME:$PASSWORD curl -X GET <backup-node-ip-address-or-domain-name>:8097/cluster/self/\ repository/$REPO_STATUS/$REPO_NAME/info -u $USERNAME:$PASSWORD
Responses
Value | Description |
---|---|
|
Successful call. |
|
Invalid parameter. |
|
The repository in the endpoint URI does not exist. |
|
Authorization failure due to incorrect username or password. |
|
The provided username has insufficient privileges to call this method. |
|
Error in the URI path. |
|
Error in Couchbase Server. |
Examples
The following curl
command returns information about all active repositories.
The command pipes the output to the jq
command for readability.
curl -v -X GET \
http://127.0.0.1:8097/api/v1/cluster/self/repository/active \
-u Administrator:password | jq
Successful execution returns a JSON array, each of whose members is an object containing information on an active repository. Information includes repository names, file or cluster paths, and plan details. The initial part of the potentially extensive output might appear as follows:
[
{
"id": "bestRepo",
"plan_name": "BackupAndMergePlan",
"state": "active",
"archive": "/Users/user/Documents/archives/bestRepo",
"repo": "40aa565c-6049-4ea9-9837-516a2dcdf53b",
"scheduled": {
"BackupEveryTuesdayForOneYear": {
"name": "BackupEveryTuesdayForOneYear",
"task_type": "BACKUP",
"next_run": "2021-09-28T21:00:00+01:00"
},
"testTask3": {
"name": "testTask3",
"task_type": "MERGE",
"next_run": "2020-10-29T22:00:00Z"
}
},
"version": 1,
"health": {
"healthy": true
},
"creation_time": "2020-10-01T13:28:56.207976+01:00",
"update_time": "2020-10-01T13:28:56.207976+01:00"
},
{
"id": "testRepo",
"plan_name": "_hourly_backups",
"bucket": {
"name": "travel-sample",
"uuid": "15b15c78439db91ba73f27ac4d6ba116"
},
.
.
.
}
]
Each object thus contains the id
(name), plan_name
, state
, repo
(unique identifier), and scheduled tasks for the repository.
It also contains an account of the repository’s health, its creation time, and the time of its latest update.
The following call returns information on a specific, named, active repository:
curl -v -X GET \
http://127.0.0.1:8091/_p/backup/api/v1/cluster/self/repository/active/restRepo \
-u Administrator:password | jq
If successful, the call returns the following object:
{
"id": "restRepo",
"plan_name": "_hourly_backups",
"bucket": {
"name": "travel-sample",
"uuid": "15b15c78439db91ba73f27ac4d6ba116"
},
"state": "active",
"archive": "/Users/user/Documents/archives/restRepo",
"repo": "8b623987-9353-48f0-9773-55b124ce9146",
"scheduled": {
"backup_hourly": {
"name": "backup_hourly",
"task_type": "BACKUP",
"next_run": "2020-10-02T09:00:41+01:00"
},
"merge_every_6_hours": {
"name": "merge_every_6_hours",
"task_type": "MERGE",
"next_run": "2020-10-02T12:30:48+01:00"
},
"merge_week": {
"name": "merge_week",
"task_type": "MERGE",
"next_run": "2020-10-04T23:40:00+01:00"
}
},
"version": 1,
"health": {
"healthy": true
},
"creation_time": "2020-09-29T10:48:52.232386+01:00",
"update_time": "2020-09-29T10:48:52.232386+01:00"
}
The object thus contains information on the specified repository.
The following call returns information including backup names and dates, buckets, items, and mutations; on an imported repository named mergedRepo
:
curl -v -X GET http://127.0.0.1:8097/api/v1/cluster/self/repository/imported/mergedRepo/info \
-u Administrator:password | jq
If successful, the initial part of the potentially extensive output is as follows:
{
"name": "7509894b-7138-40fe-917e-9581d298482c",
"size": 23859762,
"count": 4,
"backups": [
{
"date": "2020-09-16T09_00_29.113465+01_00",
"type": "MERGE - FULL",
"source": "Merge",
"range": [
"2020-09-16T08_00_25.672063+01_00",
"2020-09-16T08_15_26.560952+01_00",
"2020-09-16T08_30_27.458006+01_00",
"2020-09-16T08_45_28.32018+01_00",
"2020-09-16T09_00_29.113465+01_00"
],
"events": 0,
"fts_alias": 0,
"size": 23806455,
"buckets": [
{
"name": "travel-sample",
"size": 23806449,
"items": 31592,
"mutations": 31592,
"tombstones": 0,
"views_count": 0,
"fts_count": 0,
"index_count": 10,
"analytics_count": 0,
"scopes": {
"0": {
"uid": 0,
"name": "_default",
"mutations": 31592,
"tombstones": 0,
"collections": {
"0": {
"id": 0,
"name": "_default",
"mutations": 31592,
"tombstones": 0
}
}
},
"8": {
"uid": 8,
"name": "MyScope",
"mutations": 0,
"tombstones": 0,
"collections": {
"8": {
"id": 8,
"name": "MyCollection",
"mutations": 0,
"tombstones": 0
}
}
}
}
}
],
"complete": true,
"source_cluster_uuid": "a7ec688d232620b2a9ea8c28ca68fd9a"
},
{
"date": "2020-09-16T09_15_29.826312+01_00",
"type": "INCR",
"source": "http://127.0.0.1:8091",
"events": 0,
"fts_alias": 0,
"size": 17769,
.
.
.
}
]
}
See Also
-
For an overview of the Backup Service, see Backup Service.
-
For a step-by-step guide to using Couchbase Server Web Console to configure and use the Backup Service, see Manage Backup and Restore.
-
For Information about using the Backup Service REST API to create a plan, see Create and Edit Plans.
-
For information about using the Backup Service REST API to create a repository, see Create a Repository.