# Перезапуск кластера

Когда весь кластер репликации из нескольких узлов лежит, первым нужно запустить один узел, чтобы остальные узлы знали, к какой копии кластера присоединяться.

Есть одно исключение при обычном запуске: если кластер уже стал чистым однузловым кластером, например после того, как остальные узлы вышли с помощью `EXIT CLUSTER`, запустите этот оставшийся узел обычным способом. После корректного завершения работы Manticore восстанавливает такой кластер, состоящий только из него самого, как `primary` / `synced` без `--new-cluster`.

Решение о том, какой узел запустить первым, основывается на файле `grastate.dat` — небольшом файле состояния репликации, хранящемся в каталоге данных кластера. Наиболее важные поля:

- `seqno` — номер последней известной этому узлу транзакции
- `safe_to_bootstrap` — помечен ли этот узел как безопасный для первого запуска после чистого завершения работы

Пример того, как может выглядеть `grastate.dat` после чистого завершения работы:

```text
# saved replication state
version: 2.1
uuid:    <cluster-uuid>
seqno:   12345
safe_to_bootstrap: 1
```

В этом примере:

- `seqno: 12345` означает, что этот узел знает о транзакциях вплоть до порядкового номера 12345
- `safe_to_bootstrap: -1` означает, что этот узел помечен как безопасный для первого запуска

Если весь кластер был корректно остановлен, запустите узел, который был остановлен последним. На практике это обычно узел с:

- наибольшим значением `seqno`
- `safe_to_bootstrap: 1`

Запустите этот узел первым. Это укажет Manticore начать новую копию кластера с этого узла. После этого запустите оставшиеся узлы обычным образом, чтобы они могли повторно присоединиться.

<!-- example restart-cluster-clean -->
Используйте это после чистого полного отключения кластера.


<!-- intro -->
##### Командная строка:
Если вы запускаете Manticore напрямую, используйте:

<!-- request Bash -->

```bash
searchd --new-cluster
```

<!-- intro -->
##### systemd:
Если вы запускаете Manticore через systemd в Linux, используйте:

<!-- request Systemd -->

```bash
manticore_new_cluster
```
<!-- end -->

Если другой узел будет запущен первым без требуемого состояния чистого завершения работы, запуск будет отклонен для защиты кластера от восстановления из более старой копии.

Если все узлы аварийно завершили работу или были остановлены некорректно, файл `grastate.dat` может больше не быть надежным для обычного выбора начальной загрузки. В этом случае найдите узел с самыми свежими данными, обычно тот, у которого наибольший `seqno`, и запустите его с опцией `--new-cluster-force`. Это отменяет обычную защиту и принудительно запускает кластер с выбранного узла.

<!-- example restart-cluster-force -->
Используйте это после аварийного или некорректного полного отключения кластера.


<!-- intro -->
##### Командная строка:
Если вы запускаете Manticore напрямую, используйте:

<!-- request Bash -->

```bash
searchd --new-cluster-force
```

<!-- intro -->

##### systemd:
Если вы запускаете Manticore через systemd в Linux, используйте:

<!-- request Systemd -->

```bash
manticore_new_cluster --force
```
<!-- end -->

<!-- proofread -->
