pg_dumpза замовчуванням створює sql доручення, необхідні для відтворення даних. Щоб відновити його, потрібно просто викликати psql(не pg_restore) файл у якості вхідного даних. pg_restoreвикористовується лише для двійкового (не за замовчуванням, і менш звичайного, не рекомендованого ) формату pg_dump. Прочитайте документи .
Оновлення: pg_dumpБінарні формати ( -Fc -Ft), якими слід користуватися, pg_restoreє нормальними та пропонують додаткову гнучкість. Але вони менш стандартні (не для SQL), менш сприятливі для імпорту з деяких інструментів (наприклад, php frontend) або маніпулювання текстовим редактором, і трохи менш портативні до інших версій і навіть інших баз даних. Для резервного копіювання я б дотримувався звичайного формату за замовчуванням. Для інших сценаріїв опція бінарного + pg_restore може бути однаковою чи більшою мірою.
Справа в тому, що в Postgresql, у типовому сценарії , резервне копіювання, як правило, виконується за допомогою pg_dump (звичайний) та відновлення зі стандартним клієнтським командним рядком ( psql ).