201 lines
5.2 KiB
Plaintext
201 lines
5.2 KiB
Plaintext
---
|
||
layout: api
|
||
page_title: /sys/replication - HTTP API
|
||
description: >-
|
||
The '/sys/replication' endpoint focuses on managing general operations in
|
||
Vault Enterprise replication
|
||
---
|
||
|
||
# `/sys/replication`
|
||
|
||
~> **Enterprise Only** – These endpoints require Vault Enterprise.
|
||
|
||
## Attempt Recovery
|
||
|
||
This endpoint attempts recovery if replication is in an adverse state. For
|
||
example: an error has caused replication to stop syncing.
|
||
|
||
| Method | Path |
|
||
| :----- | :------------------------- |
|
||
| `POST` | `/sys/replication/recover` |
|
||
|
||
### Sample Request
|
||
|
||
```shell-session
|
||
$ curl \
|
||
--header "X-Vault-Token: ..." \
|
||
--request POST \
|
||
http://127.0.0.1:8200/v1/sys/replication/recover
|
||
```
|
||
|
||
### Sample Response
|
||
|
||
```json
|
||
{
|
||
"warnings": ["..."]
|
||
}
|
||
```
|
||
|
||
## Reindex Replication
|
||
|
||
This endpoint reindexes the local data storage. This can cause a very long delay
|
||
depending on the number and size of objects in the data store.
|
||
|
||
**This endpoint requires 'sudo' capability.**
|
||
|
||
| Method | Path |
|
||
| :----- | :------------------------- |
|
||
| `POST` | `/sys/replication/reindex` |
|
||
|
||
### Parameters
|
||
|
||
- `diff` `(bool: false)` – Enables a slower re-indexing which will perform a key
|
||
level check to diagnose issues. Defaults false.
|
||
|
||
- `force` `(bool: false)` – Forces a complete re-indexing which only scans data
|
||
available in the storage. Defaults false.
|
||
|
||
- `skip_flush` `(bool: false)` – Skips the tree flushing stage of the reindex
|
||
process. This setting can be used to reduce the amount of time the tree is locked
|
||
during a reindex process. If this node is killed before the full tree has been
|
||
asynchronously flushed the reindex may not have applied fully and a new reindex
|
||
may need to be done. Shutting down this node cleanly will cause the tree to be
|
||
flushed prior to shutdown. Defaults false.
|
||
|
||
### Sample Payload
|
||
|
||
```json
|
||
{}
|
||
```
|
||
|
||
### Sample Request
|
||
|
||
```shell-session
|
||
$ curl \
|
||
--header "X-Vault-Token: ..." \
|
||
--request POST \
|
||
http://127.0.0.1:8200/v1/sys/replication/reindex
|
||
```
|
||
|
||
### Sample Response
|
||
|
||
```json
|
||
{
|
||
"warnings": ["..."]
|
||
}
|
||
```
|
||
|
||
## Check Status
|
||
|
||
This endpoint print information about the status of replication (mode,
|
||
sync progress, etc).
|
||
|
||
This is an unauthenticated endpoint.
|
||
|
||
| Method | Path |
|
||
| :----- | :------------------------ |
|
||
| `GET` | `/sys/replication/status` |
|
||
|
||
### Sample Request
|
||
|
||
```shell-session
|
||
$ curl \
|
||
http://127.0.0.1:8200/v1/sys/replication/status
|
||
```
|
||
|
||
### Sample Response
|
||
|
||
The printed status of the replication environment. As an example, for a
|
||
performance primary and DR primary node, it will look something like:
|
||
|
||
```json
|
||
{
|
||
"data": {
|
||
"dr": {
|
||
"cluster_id": "f2c21cb5-523f-617b-20ac-c913d9154ba6",
|
||
"known_secondaries": ["3"],
|
||
"last_wal": 291,
|
||
"merkle_root": "38543b95d44132138003939addbaf94125ec184e",
|
||
"mode": "primary",
|
||
"primary_cluster_addr": "",
|
||
"secondaries": [
|
||
{
|
||
"api_address": "https://127.0.0.1:49264",
|
||
"cluster_address": "https://127.0.0.1:49267",
|
||
"connection_status": "connected",
|
||
"last_heartbeat": "2020-06-10T15:40:47-07:00",
|
||
"node_id": "3"
|
||
}
|
||
]
|
||
},
|
||
"performance": {
|
||
"cluster_id": "1598d434-dfec-1f48-f019-3d22a8075bf9",
|
||
"known_secondaries": ["2"],
|
||
"last_wal": 291,
|
||
"merkle_root": "43f40fc775b40cc76cd5d7e289b2e6eaf4ba138c",
|
||
"mode": "primary",
|
||
"primary_cluster_addr": "",
|
||
"secondaries": [
|
||
{
|
||
"api_address": "https://127.0.0.1:49253",
|
||
"cluster_address": "https://127.0.0.1:49256",
|
||
"connection_status": "connected",
|
||
"last_heartbeat": "2020-06-10T15:40:46-07:00",
|
||
"node_id": "2"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Possible values for `connection_status` are `connected` or `disconnected`. `last_heartbeat` is the timestamp of the
|
||
last time this node exchanged heartbeats with another node.
|
||
|
||
### Sample Response from Performance Secondary & DR Primary
|
||
|
||
The printed status of the replication environment. As an example, for a
|
||
performance secondary and DR primary node, it will look something like:
|
||
|
||
```json
|
||
{
|
||
"data": {
|
||
"dr": {
|
||
"cluster_id": "e4bfa800-002e-7b6d-14c2-617855ece02f",
|
||
"known_secondaries": ["4"],
|
||
"last_wal": 455,
|
||
"merkle_root": "cdcf796619240ce19dd8af30fa700f64c8006e3d",
|
||
"mode": "primary",
|
||
"primary_cluster_addr": "",
|
||
"secondaries": [
|
||
{
|
||
"api_address": "https://127.0.0.1:49277",
|
||
"cluster_address": "https://127.0.0.1:49281",
|
||
"connection_status": "connected",
|
||
"last_heartbeat": "2020-06-10T15:40:46-07:00",
|
||
"node_id": "4"
|
||
}
|
||
]
|
||
},
|
||
"performance": {
|
||
"cluster_id": "1598d434-dfec-1f48-f019-3d22a8075bf9",
|
||
"known_primary_cluster_addrs": ["https://127.0.0.1:8201"],
|
||
"last_remote_wal": 291,
|
||
"merkle_root": "43f40fc775b40cc76cd5d7e289b2e6eaf4ba138c",
|
||
"mode": "secondary",
|
||
"primaries": [
|
||
{
|
||
"api_address": "https://127.0.0.1:49244",
|
||
"cluster_address": "https://127.0.0.1:8201",
|
||
"connection_status": "connected",
|
||
"last_heartbeat": "2020-06-10T15:40:46-07:00"
|
||
}
|
||
],
|
||
"primary_cluster_addr": "https://127.0.0.1:8201",
|
||
"secondary_id": "2",
|
||
"state": "stream-wals"
|
||
}
|
||
}
|
||
}
|
||
```
|