Общие сведения
Регулярное создание резервных копий БД направлено на обеспечение возможности быстрого восстановления данных в случае их полной утраты в результате неверных действий администратора или умышленных действий третьих лиц. Резервирование системы в этом случае является недостаточным, т. к. в случае случайного или умышленного повреждения или изменения данных в БД они будут изменены на всех нодах кластера СУБД PostgreSQL. В установочных файлах NAICE добавлены скрипты, позволяющие создавать или восстанавливать данные.
Создание резервной копии данных
Создание резервной копии данных однохостовой установки СУБД PostgreSQL в контейнере
При установке NAICE через OVA-образ создание резервной копии данных выполняется по инструкции v1.2_3.2.4 Резервное копирование.
Выгрузка резервной копии данных выполняется на хостовую машину в папку <папка установки NAICE>/backups/. По умолчанию это папка /etc/docker-naice/backups/.
Для создания резервной копии необходимо выполнить команду на сервере NAICE:
sudo docker exec -it naice-postgres /home/worker/scripts/backup/backup.sh
Создание резервной копии данных в схеме СУБД PostgreSQL, развернутой в кластере в контейнерах
Выгрузка резервной копии данных выполняется на хостовую машину в папку <папка установки NAICE>/postgres/backups/. По умолчанию это папка /etc/docker-naice/postgres/backups/.
Доступ к папке backups возможен только пользователям с правами sudo.
Для создания резервной копии необходимо выполнить команду на сервере NAICE:
На ноде первого кластера PostgreSQL:
sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/backup.sh
На ноде второго кластера PostgreSQL:
sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/backup.sh
Создание резервной копии возможно на любой ноде кластера независимо от её состояния Primary или Standby.
Создание резервной копии данных по расписанию
По умолчанию в системе включён бэкап по расписанию (ежедневно в 3:30).
На хостовой машине присутсует:
- файл /etc/cron.d/naice_backup, где указана периодичность запуска;
- скрип /opt/backup/naice_backup.sh, выполняющий бэкап;
- лог выполнения скрипа /var/log/naice_backup.log;
- выгрузка резервной копии данных выполняется на хостовую машину в папку <папка установки NAICE>/postgres/backups/. По умолчанию это папка /etc/docker-naice/postgres/backups/.
Возможности скрипта naice_backup.sh:
- выполнить backup.sh внутри контейнера naice-postgres
- отправить файл по ftp (по умолчанию выключено, по необходимости нужно указать учётные данные и включить)
- удалить устаревшие файлы (по умолчанию файлы хранятся 7 дней)
Восстановление данных из резервной копии
Восстановление данных из резервной копии однохостовой установки СУБД PostgreSQL
При установке NAICE через OVA-образ восстановление из резервной копии данных выполняется по инструкции v1.2_3.2.4 Резервное копирование.
Для возможности восстановления данных файлы резервных копий БД должны быть расположены в папке < папка установки NAICE>/backups/. По умолчанию это папка /etc/docker-naice/backups/.
Просмотреть файлы в папке с сортировкой по времени (самые новые файлы - первые в списке) командой ls -tlh < папка установки NAICE>/backups/:
$ ls -tlh /etc/docker-naice/postgres/backups/ total 72K -rw-r--r-- 1 root root 22K Dec 12 15:07 naice_2024-12-12_22-07-23_279.tar.gz -rw-r--r-- 1 root root 22K Dec 12 11:18 naice_2024-12-12_18-18-30_970.tar.gz
Для восстановления из последней по дате создания резервной копии необходимо выполнить команду на сервере NAICE:
sudo docker exec -it naice-postgres /home/worker/scripts/backup/restore.sh
Для восстановления из определенного файла необходимо через переменную -f указать путь к файлу с резервной копией (внутри контейнера все файлы резервных копий находятся в папке /var/backups/):
sudo docker exec -it naice-postgres /home/worker/scripts/backup/restore.sh -f /var/backups/naice_2024-12-12_18-18-30_970.tar.gz
Восстановление данных из резервной копии в схеме СУБД PostgreSQL, развернутой в кластере
Для возможности восстановления данных файлы резервных копий БД должны быть расположены в папке <папка установки NAICE>/postgres/backups/. По умолчанию это папка /etc/docker-naice/postgres/backups/.
Доступ к папке backups возможен только пользователем с правами sudo.
Просмотреть файлы в папке с сортировкой по времени (самые новые файлы - первые в списке) командой sudo ls -tlh <папка установки NAICE>/postgres/backups/:
$ sudo ls -tlh /etc/docker-naice/postgres/backups/ total 72K -rw-r--r-- 1 worker root 22K Dec 12 15:17 naice_2024-12-12_22-17-26_667.tar.gz -rw-r--r-- 1 root root 22K Dec 12 11:54 naice_2024-12-12_18-18-30_970.tar.gz
Восстановление данных возможно только на ноде, находящейся в состоянии Primary.
Как определить, какая нода находится в состоянии Primary, описано в инструкции v1.2_9.6.1 Диагностика состояния кластера БД PostgreSQL в разделе Проверка состояния кластера PostgreSQL.
После определения ноды в состоянии Primary для восстановления из последней по дате создания резервной копии необходимо выполнить команду:
Если Primary нода первого кластера:
sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/restore.sh
Если Primary нода второго кластера:
sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/restore.sh
Для восстановления из определенного файла необходимо через переменную -f указать путь к файлу с резервной копией (внутри контейнера все файлы резервных копий находятся в папке /var/backups/):
Если Primary нода первого кластера:
sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/restore.sh -f /var/backups/naice_2024-12-12_18-18-30_970.tar.gz
Если Primary нода второго кластера:
sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/restore.sh -f /var/backups/naice_2024-12-12_18-18-30_970.tar.gz
Действия после восстановления данных из резервной копии
После восстановления данных из резервной копии необходимо выполнить перезапуск сервисов NAICE что бы они перечитали новые данные.
Зайти в папку установки NAICE (по умолчанию /etc/docker-naice):
cd /etc/docker-naice
И выполнить перезапуск сервисов командой:
sudo docker compose down && sudo docker compose up -d
При использовании установки с резервированием перезапуск необходимо выполнить последовательно на первой и второй нодах с развернутыми сервисами NAICE.