PostgreSQL: резервное копирование с pg_dump и pg_basebackup
Логические и физические бэкапы, форматы pg_dump, восстановление pg_restore и автоматизация через cron.
Логический бэкап
bash
pg_dump -U postgres -Fc -f app_$(date +%F).dump app
pg_dumpall -U postgres --globals-only > globals.sqlФормат -Fc (custom) сжат и позволяет выборочное восстановление.
Восстановление
bash
createdb -U postgres app_restored
pg_restore -U postgres -d app_restored -j 4 app_2026-09-01.dump
pg_restore -l app.dump | grep orders # посмотреть содержимоеФизический бэкап
bash
pg_basebackup -U replicator -D /backup/base -Ft -z -P -X streamВместе с архивом WAL это даёт восстановление на любой момент времени (PITR).
Автоматизация
bash
# /etc/cron.d/pg-backup
15 2 * * * postgres pg_dump -Fc app > /backup/app_$(date +\%F).dump && find /backup -name 'app_*.dump' -mtime +14 -deleteПравило: бэкап без проверенного восстановления — это не бэкап. Раз в месяц восстанавливайте копию на тестовый сервер.
postgresqlbackup