|
| 1 | +ArangoDB Starter Recovery Procedure |
| 2 | +=================================== |
| 3 | + |
| 4 | +This procedure is intended to recover a cluster (that was started with the ArangoDB |
| 5 | +_Starter_) when a machine of that cluster is broken without the possibility to recover |
| 6 | +it (e.g. complete HD failure). In the procedure is does not matter if a replacement |
| 7 | +machine uses the old or a new IP address. |
| 8 | + |
| 9 | +To recover from this scenario, you must: |
| 10 | +- Create a new (replacement) machine with ArangoDB (including _Starter_) installed. |
| 11 | +- Create a file called `RECOVERY` in the directory you are going to use as data |
| 12 | + directory of the _Starter_ (the one that is passed via the option `--starter.data-dir`). |
| 13 | + This file must contain the IP address and port of the _Starter_ that has been |
| 14 | + broken (and will be replaced with this new machine). |
| 15 | + |
| 16 | +E.g. |
| 17 | + |
| 18 | +```bash |
| 19 | +echo "192.168.1.25:8528" > $DATADIR/RECOVERY |
| 20 | +``` |
| 21 | + |
| 22 | +After creating the `RECOVERY` file, start the _Starter_ using all the normal command |
| 23 | +line arguments. |
| 24 | + |
| 25 | +The _Starter_ will now: |
| 26 | +1) Talk to the remaining _Starters_ to find the ID of the _Starter_ it replaces and |
| 27 | + use that ID to join the remaining _Starters_. |
| 28 | +1) Talk to the remaining _Agents_ to find the ID of the _Agent_ it replaces and |
| 29 | + adjust the command-line arguments of the _Agent_ (it will start) to use that ID. |
| 30 | + This is skipped if the _Starter_ was not running an _Agent_. |
| 31 | +1) Remove the `RECOVERY` file from the data directory. |
| 32 | + |
| 33 | +The cluster will now recover automatically. It will however have one more _Coordinators_ |
| 34 | +and _DBServers_ than expected. Exactly one _Coordinator_ and one _DBServer_ will |
| 35 | +be listed "red" in the web UI of the database. They will have to be removed manually |
| 36 | +using the ArangoDB Web UI. |
0 commit comments