Настройка резервного копирования

 

Резервное копирование СУБД

Создать каталог на диске для хранения wal-файлов (a) и для самой копии базы (b) (рекомендуется в PG_DATA)


mkdir /var/lib/postgresql/archive_{a,b} 

 

Сделать резервную копию файла конфигурации PostgreSQL


sudo cp /etc/postgresql/14/main/postgresql.conf /etc/postgresql/14/main/postgresql.conf.bkp

 

Изменить файл конфигурации PostgreSQL


# Раскомментировать параметры: 
wal_level = replica
archive_mode = on
archive_command = 'test ! -f /var/lib/postgresql/archive_a/%f && cp %p /var/lib/postgresql/archive_a/%f'

 

Внести изменения в файл pg_hba.conf


local   replication     all   trust

 

Перезапустить базу:


systemctl restart postgresql.service

 

Проверить, что сохранение wal-файлов производится в нужном нам каталоге


su - postgres
psql
postgres=# select pg_switch_wal();
ls -al /var/lib/postgresql/14/main/archive_a/

 

После выполнения данных настроек можно сделать первый бэкап СУБ


pg_basebackup -D arcive_b/ -Ft -z

 

Данную команду можно оформить в скрипт, после чего настроить запуск по расписанию в crond.

 

Восстановление

Восстановление рекомендуется осуществляеть на новом кластере PostgreSQL.

 

Перенести бэкап в рабочий каталог (PG_DATA)


sudo cp -a /path/to/database_backup/. /var/lib/postgresql/14/main/ 
sudo chown postgres:postgres /var/lib/postgresql/14/main
sudo chmod 700 /var/lib/postgresql/14/main

 

Указать параметры восстановления (в файле /etc/postgresql/14/main/postgresql.conf)


restore_command = 'cp /var/lib/postgresql/pg_log_archive/%f %p'
recovery_target_time = 'yyyy-mm-dd hh:mm:ss.ss' ('2021-08-10 15:20:00')
recovery_target_timeline = 'latest' - до последней ветки
recovery_target_timeline = '1' - до указанной

 

Создать файл recovery.signal для запуска сервера в режиме восстановления


sudo touch /var/lib/postgresql/14/main/recovery.signal

 

Запустить СУБД


sudo systemctl start postgresql.service
sudo systemctl status postgresql.service

 

Резервное копирование файлов конфигурации сервера

Резервное копирование осуществляется путем копирования архивов каталогов: - /etc - /usr/local/PLATEX/converters - /var/www

 

Пример:


tar zcf etc.tar.gz /etc/* 
cp etc.tar.gz BACKUP_PATH

 

Восстановление файлов конфигурации производится путем обратного копирования файлов из архивов в целевые директории на сервере.