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 ).