Общее описание
Для перехода со схемы, использующей однохостовую установку, на схему с резервированием требуется выполнить миграцию данных БД. Это необходимо, т. к. контейнер БД PostgreSQL, предназначенный для работы в схеме с резервированием БД имеет отдельный образ, в состав которого включен "Replication manager for PostgreSQL clusters" (далее repmng).
Данная особенность образа БД, предназначенного для использования в схеме с резервированием, не позволяет выполнить прямую миграцию данных. Для этого требуется выполнить резервное копирование БД, развернуть БД с резервированием с "нуля" и выполнить восстановление БД.
| Версия NAICE | Название образа и версия |
|---|---|
| 1.1 | postgres: 1.1.5 |
| 1.1 | postgres-repmgr: 1.1.5 |
Данное обновление работает только в рамках одной версии. Если требуется обновиться на новую версию и перейти на схему с резервированием, то сначала необходимо выполнить обновление NAICE до актуальной версии, после чего выполнить обновление.
Предварительные действия по подготовке к переходу на схему с резервированием
- Необходимо определить IP-адресацию новых нод NAICE.
- Определить какая из схем резервирования будет использоваться: v1.1_3.4 Установка с резервированием (c использованием VRRP) или v1.1_3.5 Установка с резервированием (без использования VRRP).
- Решить, будет ли использовать в качестве VIP-адреса IP-адрес однохостовой установки, если используется схема с резервированием с VRRP.
- Решить, будет ли использовать в качестве IP-адреса одной из нод IP-адрес однохостовой установки, если используется схема с резервированием без VRRP.
- В зависимости от изменений IP-адресации заранее настроить сетевое оборудование:
- В ходе выполнения перехода планируется развернуть новые виртуальные машины для работы в схеме с резервированием, IP-адресация NAICE измениться и не будет совпадать с ранее настроенной на сетевом оборудовании. В этом случае потребуется указать в настройках сетевого оборудования новый адрес NAICE для настроек взаимодействия по протоколам RADIUS и TACACS+, если используется схема с резервированием c VRRP; либо указать два адреса взаимодействия (реальный IP-адрес каждой ноды NAICE), если была развернута схема с резервированием без VRRP.
При выборе данной стратегии рекомендуется заранее указать на сетевом оборудовании новые IP-адреса для взаимодействия с NAICE с более низким приоритетом.
- Будет выполнен переход на схему с резервированием с использованием VRRP, используемый VIP-адрес будет совпадать с ранее используемым IP-адресом однохостовой установки NAICE. В этом случае никаких дополнительных действий по изменению настроек сетевого оборудования не потребуется.
- Будет выполнен переход на схему с резервированием без использования VRRP, IP-адрес одной из нод NAICE будет совпадать с ранее используемым IP-адресом однохостовой установки NAICE. На сетевом оборудовании потребуется дополнительно указать IP-адрес второй ноды NAICE в качестве RADIUS и TACACS+ сервера, что бы иметь возможность переключения между настроенными адресами в случае отказа одной из нод NAICE.
- В ходе выполнения перехода планируется развернуть новые виртуальные машины для работы в схеме с резервированием, IP-адресация NAICE измениться и не будет совпадать с ранее настроенной на сетевом оборудовании. В этом случае потребуется указать в настройках сетевого оборудования новый адрес NAICE для настроек взаимодействия по протоколам RADIUS и TACACS+, если используется схема с резервированием c VRRP; либо указать два адреса взаимодействия (реальный IP-адрес каждой ноды NAICE), если была развернута схема с резервированием без VRRP.
- Т.к. при переходе на схему с резервированием будет перерыв связи - запланировать техническое окно для выполнения работ и необходимых проверок течении не менее 3-х часов.
- Сделать снапшот виртуальной машины с однохостовой установкой NAICE для возможности отката изменений.
- Подготовить виртуальные машины для разворачивания NAICE в схеме с резервированием в соответствии с системными требованиями.
Переход на схему с резервированием
Перед выполнением миграции БД, в зависимости от используемого функционала NAICE необходимо остановить обработку RADIUS и TACACS+ пакетов. Это требуется для того, что бы предотвратить потерю информации и RADIUS и TACACS+ сессиях, которые могут быть записаны в БД после выполнения её резервного копирования. Для этого требуется подключиться к хосту с NAICE по ssh и выполнить в папке установки NAICE (по умолчанию /etc/docker-naice) остановку сервисов, отвечающих за данные процессы. Пример:
cd /etc/docker-naice/ sudo docker compose stop naice-radius sudo docker compose stop naice-aquila
Порядок миграции БД
Переход БД с версии однохостовой установки на версию с резервированием включает в себя следующие этапы:
Этап 1. Выгрузка файла бэкапа текущих настроек БД.
- Выгрузка скриптом резервной копии БД (скрипты включены в образ БД).
Этап 2. Разворачивание на новых хостах кластера БД PostgreSQL.
- Удаление текущей однохостовой установки, если планируется использовать его как часть кластера.
- Установка кластера БД в соответствии с инструкцией и выбранной схемой резервирования v1.1_3.4 Установка с резервированием (c использованием VRRP) или v1.1_3.5 Установка с резервированием (без использования VRRP).
Этап 3. Загрузка ранее выгруженного бэкапа данных в кластер БД PostgreSQL.
- Загрузка ранее выгруженного бэкапа данных БД скриптом;
- Установка сервисов NAICE.
Выполнение миграции БД
Этап 1. Выгрузка файла бэкапа текущих данных БД однохостовой установки
1. Передать в контейнер postgres команду на запуск скрипта для формирования бэкапа:
sudo docker exec -it naice-postgres /scripts/backup/backup.sh
Выгрузка резервной копии БД выполняется на хост в папку <путь установки NAICE>/backups. По умолчанию это папка /etc/docker-naice/backups/, файл имеет формат naice_ГГГГ-ММ-ДД_ЧЧ-ММ-СС_XXX.tar.gz.
2. Убедиться, что в папке присутствует файл с резервной копией БД с именем, которое отображалось в логах при создании резервной копии.
3. Выгрузить файл с резервной копией БД на машину администратора или в специальное хранилище для предотвращения его потери в ходе дальнейших действий с виртуальной машиной, на которой выполнена однохостовая установка.
Этап 2. Разворачивание на новых хостах кластера БД PostgreSQL
- Если планируется повторно использовать хост текущей однохостовой установки в качестве части кластера, то предварительно необходимо перенести файл резервной копии из папки установки NAICE (по умолчанию -
/etc/docker-naice/backups), остановить все сервисы NAICE и удалить эту папку:$ sudo mv /etc/docker-naice/backups/naice_2025-11-14_08-25-02_318.tar.gz ~ $ docker compose -f /etc/docker-naice/docker-compose.yml down $ sudo rm -rfv /etc/docker-naice/
- Установить кластер БД в соответствии с инструкцией и выбранной схемой резервирования v1.1_3.4 Установка с резервированием (c использованием VRRP) или v1.1_3.5 Установка с резервированием (без использования VRRP) в разделе Установка кластера СУБД PostgreSQL.
Сервисы NAICE на данном этапе устанавливать не нужно!
Этап 3. Загрузка ранее выгруженного бэкапа данных в кластер БД PostgreSQL
Внимание! Загрузка резервной копии данных в БД, использующую кластерную схему резервирования, возможна только на ноде, находящейся в состоянии Primary!
- Определить, какая нода находится в состоянии Primary (описано в v1.1_3.4 Установка с резервированием (c использованием VRRP) в разделе Проверка состояния кластера PostgreSQL).
- Перенести ранее выгруженный файл данных с сервера с однохостовой установкой на ноду кластера БД PostgreSQL в состоянии Primary.
- Файл с резервной копией необходимо поместить в папку <путь к БД>/postgres/backups. Эта папка доступна пользователю с правами root.Пример переноса архива данных БД при выполнении на хосте, где работает нода кластера PostgreSQL
$ sudo scp tester@100.110.3.35:/etc/docker-naice/backups/naice_2026-02-28_10-59-49_717.tar.gz /etc/docker-naice/postgres/backups The authenticity of host '100.110.3.35 (100.110.3.35)' can't be established. ED25519 key fingerprint is SHA256:0xB2cJjNA/FUZfBr+Z1q3npqNtd0gELjat2XkQwxT0E. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '100.110.3.35' (ED25519) to the list of known hosts. tester@100.110.3.35's password: naice_2026-02-28_10-59-49_717.tar.gz 100% 93KB 25.6MB/s 00:00 100% 21KB 8.3MB/s 00:00
- В зависимости от того, какая надо находится в состоянии Primary, передать в контейнер команду на запуск скрипта для восстановления данных из резервной копии:
- Пример команда для ноды 1 кластера PostgreSQL:
sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/restore.sh -f /var/backups/<имя файла из которого выполняется восстановление БД>
- Пример команда для ноды 2 кластера PostgreSQL:
sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/restore.sh -f /var/backups/<имя файла из которого выполняется восстановление БД>
- В конце лога выполнения команды появится сообщение:
[RESTORE] [naice_2026-02-28_10-59-49_717] [11:10:19.39] INFO ==> Ok, restoring is completed. [RESTORE] [naice_2026-02-28_10-59-49_717] [11:10:19.40] INFO ==> All databases were successfully restored from available dumps.
- Пример команда для ноды 1 кластера PostgreSQL:
Установка сервисов NAICE в схеме с резервированием
- Выполнить установку сервисов NAICE в соответствии с инструкцией и выбранной схемой резервирования v1.1_3.4 Установка с резервированием (c использованием VRRP) или v1.1_3.5 Установка с резервированием (без использования VRRP) в разделе Установка кластера NAICE.
- Проверить доступность и работоспособность сервисов NAICE.
- Если в конфигурации сетевого оборудования остался IP-адрес взаимодействия с однохостовой установкой NAICE, который более не используется - удалить его из конфигурации оборудования.
Откат в случае неудачной установки
Для отката в случае неудачной попытки установки NAICE в схеме с резервированием необходимо:
- Остановить вирутальные машины с нодами NAICE и СУБД PostgreSQL
- Выполнить восстановление из ранее сделанного снапшота виртуальной машины с однохостовой установкой NAICE.
- Проверить доступность и работоспособность сервисов NAICE.