IT Academy

PostgreSQL: pg_dump жана pg_basebackup менен резервдик көчүрмөлөө

Логикалык жана физикалык бэкаптар, pg_dump форматтары, pg_restore менен калыбына келтирүү жана cron аркылуу автоматташтыруу.

Эрлан Касымов8-август 2026-ж. 6 мүн окуу 2174 көрүү

Логический бэкап

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