2
Общее описание
Переход со схемы использующей однохостовую установку на схему с резервированием требуется выполнить миграцию данных БД, т.к. контейнер БД PostgreSQL предназначенный для работы в схеме с резервированием БД имеет отдельный образ, в состав которого включен "Replication manager for PostgreSQL clusters" (далее "repmng"). Данная особенность образа БД, предназначенного для использования в схеме с резервированием не позволяет выполнить прямую миграцию данных: требуется выполнить резервное копирование БД, развернуть БД с резервированием с "нуля" и выполнить восстановление БД.
Версия NAICE | Название образа и версия |
---|---|
0.7 | postgres:0.7.2 |
0.7 | postgres-repmgr: 0.7.3 |
Порядок миграции БД
Переход БД с версии однохостовой установки на версию с резервированием включает в себя следующие этапы:
Этап 1. Выгрузка файла бэкапа текущих настроек БД
- выгрузка скриптом резервной копии БД (скрипты включены в образ БД).
Этап 2. Разворачивание на новых хостах кластера БД PostgreSQL
- Установка кластера БД в соответствии с инструкцией v0.7_3.6 Резервирование
Этап 3. Загрузка ранее выгруженного бэкапа данных в кластер БД PostgreSQL
- Загрузка ранее выгруженного бэкапа данных БД скриптом;
- Установка сервисов NAICE.
Выполнение миграции БД
Этап 1. Выгрузка файла бэкапа текущих данных БД однохостовой установки
Зайти в контейнер postgres:
sudo docker exec -it naice-postgres bash
Внутри контейнера выполнить команду:
/scripts/backup/backup.sh
Выгрузка резервной копии БД выполняется на хост в папку "<путь установки NAICE>/backups". По умолчанию это папка "/etc/docker-naice/backups/"
Выйти их контейнера и убедиться, что в папке присутствует файл с резервной копией БД с именем, которое отображалось в логах при создании резервной копии.
Этап 2. Разворачивание на новых хостах кластера БД PostgreSQL
Установить кластер БД в соответствии с инструкцией v0.7_3.6 Резервирование в разделе "Установка кластера СУБД PostgreSQL".
Этап 3. Загрузка ранее выгруженного бэкапа данных в кластер БД PostgreSQL
Внимание! Загрузка резервной копии данных в БД использующую кластерную схему резервирования возможна только на ноде находящейся в состоянии "Primary"!
Определить какая нода находиться в состоянии "Primary" (описано в v0.7_3.6 Резервирование в разделе "Проверка состояния кластера PostgreSQL").
Перенести ранее выгруженный файл данных с сервера с однохостовой установкой на ноду кластера БД PostgreSQL в состоянии "Primary".
Файл с резервной копией необходимо поместить в папку "<путь к БД>/postgres/backups". Эта папка доступна пользователю с правами root.
$ sudo scp tester@100.110.2.202:/etc/docker-naice/backups/naice_2024-12-12_18-18-30_970.tar.gz /etc/docker-naice/postgres/backups The authenticity of host '100.110.2.202 (100.110.2.202)' can't be established. ED25519 key fingerprint is SHA256:4YUjqgXmieg9JM9kU49/yk5BA9+ndhEK78sX8flb2+w. 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.2.202' (ED25519) to the list of known hosts. tester@100.110.2.202's password: naice_2024-12-12_18-18-30_970.tar.gz 100% 21KB 8.3MB/s 00:00
Зайти в контейнер кластера postgres.
Команда для ноды 1 кластера PostgreSQL:
sudo docker exec -it naice-postgres-1 bash
Команда для ноды 2 кластера PostgreSQL:
sudo docker exec -it naice-postgres-2 bash
Внутри контейнера выполнить команду:
/home/worker/scripts/backup/restore.sh
В конце лога выполнения команды появится сообщение:
[RESTORE] [naice_2024-12-12_18-18-30_970] [19:00:33.78] INFO ==> Ok, restoring is completed
Выйти из контейнера.
Выполнить установку сервисов NAICE в соответствие с инструкцией v0.7_3.6 Резервирование в разделе "Установка кластера NAICE".