Использование 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

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

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

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

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования