Использование pg_probackup для резервного копирования баз данных Postgresql (локально)

Оцените статью

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

$ /usr/lib/postgresql/17/bin/initdb -D /var/lib/postgresql/17/main/ --data-checksums

Установка pg_probackup в Ubuntu Linux

# apt update
# apt install gpg wget lsb-release
# wget -qO - https://repo.postgrespro.ru/pg_probackup/keys/GPG-KEY-PG-PROBACKUP | sudo tee /etc/apt/trusted.gpg.d/pg_probackup.asc
# . /etc/os-release
# Add the repository line to a new sources file
echo "deb [arch=amd64] https://repo.postgrespro.ru/pg_probackup/deb $VERSION_CODENAME main-$VERSION_CODENAME" | sudo tee /etc/apt/sources.list.d/pg_probackup.list
deb [arch=amd64] https://repo.postgrespro.ru/pg_probackup/deb questing main-questing
# apt update
# apt-get install pg-probackup-17

Подготовка окружения

Создаем каталог для хранения резервных копий и назначаем права доступа к каталогу для пользователя postgres.

# mkdir -p /data-vol/backup/postgresql
# chown -R postgres:postgres /data-vol/backup/postgresql

Настраиваем конфигурацию postgresql.conf для архивирования wal-файлов.

wal_level = replica         # или выше
archive_mode = on
archive_command = 'test ! -f /data-vol/backup/postgresql/wal/main_backup/%f && cp %p /data-vol/backup/postgresql/wal/main_backup/%f'

Перезапускаем Postgresql:

# systemctl restart postgresql

Инициализация хранилища резервных копий

Инициализируем хранилише.

$ pg_probackup-17 init -B /data-vol/backup/postgresql/
$ ls /data-vol/backup/postgresql/

Регистрация экземпляра Postgresql.

$ pg_probackup-17 add-instance -B /data-vol/backup/postgresql/ -D /var/lib/postgresql/17/main --instance=main_backup

Назначаем политику удержания резервных копий

# $ pg_probackup-17 set-config --instance main_backup -B /mnt/nfs/postgresql-db-main/ --retention-window=7 --retention-redundancy=2
  • необходимо удерживать все резервные копии младше 7 дней
  • при этом кол-во полных резервный копий должно быть не меньше двух

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

Полный бэкап

# chown -R postgres:postgres /data-vol/backup/postgresql/
# su postgres
$ mkdir -p /data-vol/backup/postgresql/wal/main_backup/pg_wal/
$ pg_probackup-17 backup -B /data-vol/backup/postgresql --instance=main_backup -b FULL -U postgres -d postgres
# exit

Инкрементный бэкап (после полного)

# su postgres
$ pg_probackup-17 backup -B /data-vol/backup/postgresql/ --instance=main_backup -b PAGE -U postgres -d postgres
# exit

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

Список резервных копий.

$ pg_probackup-17 show -B /data-vol/backup/postgresql/

Проверка целостности.

$ pg_probackup-17 checkdb -B /data-vol/backup/postgresql/ --instance=main_backup

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

Останавливаем postgresql.

# systemctl stop postgresql

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

$ pg_probackup-17 show -B /data-vol/backup/postgresql/
$ pg_probackup-17 restore -B /data-vol/backup/postgresql/ --instance=main_backup -D /var/lib/postgresql/17/main --backup-id=T6MWEX

Запускаем postgresql.
# systemctl start postgresql

Удаление резервной копии из архива

$ pg_probackup-17 delete -B /mnt/nfs/postgresql-db-main/ --instance main_backup -i T7EEHJ

Очистка старых wal-файлов

$ pg_probackup-17 delete -B /mnt/nfs/postgresql-db-main/ --instance main_backup --delete-wal

Похожие записи

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Так как на севере делать абсолютно нечего, то я продолжаю заниматься саморазвитием 🙂 На этой неделе вспоминаю и углубляю свои знания в Docker. Лучший способ запомнить тему, это вести конспект…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker

Сетевые возможности Docker

Сетевые возможности Docker