Восстановление базы postgresql из бэкапа


Восстановление базы postgresql из бэкапа выполняется при помощи утилиты psql из SQL дампа.

Всегда используются SQL дампы. Подробно вопрос про принципы копирования SQL баз рассматривали в материале про бэкапы Postgres



Восстановление базы postgresql из бэкапа на примерах


Как и другие операции с postgresql восстановление базы выполняется системным пользователем postgres.

Суперпользователь может переключиться на него выполнив su postgres

su postgres



Пример:

Восстановление базы postgresql из бэкапа


Чтобы восстановить базу из дампа — загрузить ее в Postgres, используется такая команда:

psql -d test  < /full/path/dump.sql


Ключом -d передается имя базы данных, после знака < нужно указать полный путь к SQL дампу.

SQL дамп нужно загрузить на сервер если он хранится на внешнем сервере для бэкапов (так должно быть для обеспечения сохранности данных в случае глобальных проблем с сервером с базой).



Опционально передаётся ключ -U username в случае если для базы выданы права определенному пользователю. В любом случае можно работать подключившись как postgres. Это суперпользователь для СУБД, он может производить любые операции с любыми базами данных на сервере.



Также для восстановления можно использовать утилиту pg_restore, но с её помощью не всегда удаётся выполнить восстановление из SQL дампа. Чтобы не было ошибок дамп должен быть созда в определенном формате.

psql универсальнее, используем этот инструмент



На скриншоте восстановление из бэкапа системной базы postgres:

psql восстановление из бэкапа


Если создавался полный бэкап всех баз данных - синтаксис команды для восстановления будет такой :

psql -f /full/path/backupfile.sql


Ошибки при импорте по умолчанию игнорируются. Чтобы загрузка останавливалась при ошибке можно добавить ключ --set ON_ERROR_STOP=on



Читайте также про подключение к Postgres из консоли сервера.
В статье есть, среди прочего, примеры команд, которыми можно просмотреть список существующих в postgres баз данных.

Сказать спасибо