# Восстановление работы в случае сбоя

Если был утрачен доступ к одному из серверов баз данных (либо из-за падения хоста виртуализации, на котором он размещен, либо из-за сбоя операционной системы), вы должны выполнить ряд действий.

В зависимости от того, какой сервер откажет (Master или Slave), задачи, которые необходимо выполнить, как для непрерывности работы службы HOSTVM VDI, так и для того, чтобы располагать действующей репликой, будут следующими:

#### Master (основной узел)

Если основной сервер базы данных (Master) откажет или будет потерян, **доступ к окружению VDI будет утрачен**. Вам придется вручную подключить иной HOSTVM VDI сервер к вторичной базе данных (Slave), в которой содержится вся информация VDI окружения до момента падения основного сервера.

Подключить новую базу данных можно, отредактировав файл конфигурации на машинах VDI-серверов (данное действие должно быть выполнено на всех VDI-серверах) и указав параметры новой базы данных. Файл конфигурации расположен по следующему пути машины VDI-сервера:

```
/var/server/server/settings.py 
```

<figure><img src="https://2603182569-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6-oafU4c2bTrhoNggH%2Fuploads%2FqHHkMl6uQS6LVElB0Z4p%2Fhost.png?alt=media&#x26;token=0a86c0eb-c61e-40b9-ab64-50e8622dd60d" alt=""><figcaption></figcaption></figure>

Когда IP адрес или имя хоста новой базы данных будут изменены, необходимо перезапустить сервер. Данное действие должно быть выполнено на всех машинах VDI-серверов.

&#x20;Как только сервер будет перезапущен, доступ к VDI окружению будет восстановлен.

После этого необходимо перенастроить систему другой машины для репликации базы данных. Есть несколько вариантов выполнения данной настройки, включая следующие:

* Настройка текущей машины базы данных как Master и создание новой машины с репликой, которую нужно сконфигурировать и восстановить бэкап с существующими данными (так как реплицированы будут только новые данные).
* Непосредственно создать бэкап машины с текущей базой данных (предварительно необходимо остановить все машины VDI-сервера). Необходимо создать новую машину выполняющую роль Мастера базы данных, восстановить на ней бэкап и заново выполнить конфигурацию репликации.

<mark style="color:red;">**ПРИМЕЧАНИЕ:**</mark>

Для того чтобы предотвратить потерю данных, перед выполнением восстановления рекомендуется создать резервную копию базы данных. Для выполнения резервного копирования используйте следующую команду:

**Для брокера версии 3.0:**

```
systemctl stop apache2 uds
```

```
mysqldump -u root --single-transaction udsdb > backup.sql
```

При создании резервной копии необходимо, чтобы все машины VDI-сервера были выключены. Таким образом обеспечивается согласованность данных и отсутствие различий баз данных Master и Slave серверов перед процедурой настройки реплики.

#### Slave (вторичный узел)

В случае отказа или утраты доступа к вторичному серверу базы данных (Slave), **доступ к VDI окружению потерян не будет**, но необходимо выполнить реконфигурирование Slave сервера для реплики базы данных. Перед выполнением данной процедуры необходимо восстановить бэкап с текущим состоянием основной базы данных, так как будут синхронизированы только данные новой реплики (существующие данные не будут реплицироваться в базе данных).

Важно, чтобы во время всего процесса машины VDI-сервера были выключены, чтобы избежать возникновения различий между базами данных Master и Slave серверов.
