--- 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" } } } ```