Три утилиты, три разных уровня бэкапа — путаница возникает, когда пытаются взаимозаменить логический и физический бэкап там, где это не работает.
pg_dump -Fc mydb > mydb.dump # логический дамп одной БД
pg_restore -d mydb_new --clean --if-exists mydb.dump
pg_basebackup -D /backup/base -Ft -z -P -U replicator # физическая копия кластера
pg_dump — логический: SQL-представление данных, можно восстановить одну таблицу из дампа целой БД, версии источника и назначения могут отличаться. pg_basebackup — физический: побайтовая копия PGDATA, восстанавливается только целиком, зато на её основе строится репликация и point-in-time recovery через WAL. Для одной таблицы — pg_dump -t, для кластера с минимальным RPO — pg_basebackup плюс архив WAL.
#postgresql #backup #sysadmin
