Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Общие сведения

Регулярное создание резервных копий БД направлено на обеспечение возможности быстрого восстановления данных в случае их полной утраты в результате неверных действий администратора или умышленных действий третьих лиц. Резервирование системы в этом случае является недостаточным, т.к. в случае случайного или умышленного повредждения или изменения данных в БД они будут изменены на всех нодах кластера СУБД PostgreSQL. В составе образов контенеров или разворачиванию плейбуком PostgreSQL в виде "deb" пакетов добавлены скрипты, поволяющий создавать или восстанавливать данные.

Создание резервной копии данных

Создание резервной копии данных однохостовой установки СУБД PostgreSQL в контейнере

Выгрузка резервной копии данных выполняется на хостовую машину в папку "< папка установки NAICE>/backups/". По умолчанию это папка "/etc/docker-naice/backups/".

Для создание резервной копии необходимо выполнить команду на сервере NAICE:

sudo docker exec -it naice-postgres /scripts/backup/backup.sh

Создание резервной копии данных в схеме СУБД PostgreSQL развернутой в кластере в контейнерах

Выгрузка резервной копии данных выполняется на хостовую машину в папку "< папка установки NAICE>/postgres/backups/". По умолчанию это папка "/etc/docker-naice/postgres/backups/".

Доступ к папке "backups" возможет только пользователем с правами "sudo".

Для создание резервной копии необходимо выполнить команду на сервере NAICE:

На ноде 1 кластера PostgreSQL:

sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/backup.sh

На ноде 2 кластера PostgreSQL:

sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/backup.sh

Создание резевной копии возможно на любой ноде кластера, независимо от её состояния "Primary" или "Standby".

Создание резервной копии данных в схеме СУБД PostgreSQL развернутой в виде "deb" пакетов

Для возможности создания резервной копии БД в случае если СУБД PostgreSQL развренута в виде deb пакетов предварительно требуется задать значения переменных окружения "BACKUPS_DIR" и "RESTORE_DIR", в который задаются папки для создания и восстановления файлов резевных копий БД. 

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

Задать переменных можно командой "export BACKUPS_DIR=<папка назначения> && export RESTORE_DIR=<папка назначения>".

Папки назначения должны быть доступны текущему пользователю без прав "sudo"!

Пример выполнения команды:

export BACKUPS_DIR=/home/tester && export RESTORE_DIR=/home/tester

Выгрузка резервной копии данных выполняется на хостовую машину в папку "<папка назначения>" определенную переменной окружения "BACKUPS_DIR". 

Для создание резервной копии необходимо выполнить команду на сервере NAICE:

/etc/postgresql/15/scripts/backup.sh

Восстановление данных из резеровной копии

Восстановление данных из резервной копии однохостовой установки СУБД PostgreSQL в контейнере

Для возможности восстановления данных файлы резевных копий БД должны быть расположены в папке "< папка установки NAICE>/backups/". По умолчанию это папка "/etc/docker-naice/backups/".

Просмотреть файлы в папке с сортировкой по времени (самые новые файлы - первые в списке) командой "ls -tlh < папка установки NAICE>/backups/":

$ ls -tlh /etc/docker-naice/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 /scripts/backup/restore.sh

Для восстановления из определенного файла необходимо чепрез переменную "-f" указать путь к файлы с резервной копией (внутри контейнера все файлы резервных копий находятся в папке "/var/backups/"):

sudo docker exec -it naice-postgres /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" описано в инструкции v0.7_3.6 Резервирование в разделе "Проверка состояния кластера PostgreSQL"

После опередения ноды в состоянии "Primary" для восстановления из последней по дате создания резервной копии необходимо выполнить команду:

Если "Primary" нода 1 кластера:

sudo docker exec -it naice-postgres-1 /home/worker/scripts/backup/restore.sh

Если "Primary" нода 2 кластера:

sudo docker exec -it naice-postgres-2 /home/worker/scripts/backup/restore.sh

Для восстановления из определенного файла необходимо через переменную "-f" указать путь к файлы с резервной копией (внутри контейнера все файлы резервных копий находятся в папке "/var/backups/"):

Если "Primary" нода 1 кластера:

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" нода 2 кластера:

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

Восстановление резервной из резервной копии в схеме СУБД PostgreSQL развернутой в виде "deb" пакетов

Для возможности восстановления БД из резервной копии в случае если СУБД PostgreSQL развренута в виде deb пакетов предварительно требуется задать значения переменных окружения "BACKUPS_DIR" и "RESTORE_DIR", в который задаются папки для создания и восстановления файлов резевных копий БД. 

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

Задать переменных можно командой "export BACKUPS_DIR=<папка назначения> && export RESTORE_DIR=<папка назначения>".

Папки назначения должны быть доступны текущему пользователю без прав "sudo"!

Пример выполнения команды:

export BACKUPS_DIR=/home/tester && export RESTORE_DIR=/home/tester

Восстановление резервной копии данных выполняется на хостовую машину из папки "<папка назначения>" определенной переменной окружения "BACKUPS_DIR". 

Просмотреть файлы в папке с сортировкой по времени (самые новые файлы - первые в списке) командой "ls -tlh <папка назначения>":

$ ls -tlh /home/tester/
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

Для восстановления всегда требуется указывать через переменную "-f" путь к файлу резервной копии БД:

/etc/postgresql/15/scripts/restore.sh -f /home/tester/naice_2024-12-12_22-07-23_279.tar.gz
  • Нет меток