PostgreSQL — реляционная система управления базами данных, в основе SQL и набор команд при работе с Postgres практически идентичен тому, что используется с MySQL. Для перемещения БД на другой сервер и создания бэкапов используется Postgres дамп.
Все команды должны выполняться от имени пользователя, имеющего достаточные привилегии для работы с определенной базой.
В примерах ниже будет использоваться пользователь postgres
su - postgres
pg_dump DATABASE_NAME > dump.sql
Пример приведен на скриншоте:
Здесь после авторизации как пользователь postgres выведен список баз (\l) с переходом в консоль сервера баз данных за счет psql. Потом создан дамп системной базы postgres с именем postgres.
Postgres дамп на выходе представляет собой .sql файл, который читабелен и может быть отредактирован после экспорта.
Флаги pg_dump, которые применяются чаще всего
-h — удаленный хост (ip адрес)
-p — пора на удаленном сервере, к которому нужно подключаться
-U — имя пользователя, имеющему достаточные права доступа для дампа базы данных
Команда с применением этих флагов будет выглядеть так:
pg_dump -h 123.123.123.123 -p 3434 -U dbadmin DATABASE_NAME > dump.sql
Восстановление из дампа можно выполнять за счет psql или pg_restore
В обоих случаях предварительно нужно убедиться в том, что база существует, при необходимости она создается так:
createdb -T template0 DATABASE_NAME
Восстановление из дампа
pg_restore -d DATABASE_NAME dump.sql
Если pg_restore передать ключ -C будет автоматически создана БД с указанным именем.
Другая команда для восстановления — psql
psql dbname < dumpfile
Postgres дамп при создании бэкапов Postgres
Утилита pg_dumpall позволяет быстро сделать дамп всех баз на сервере и сохранить их в один файл
pg_dumpall > all.sql
Создание дампов таким образом можно использовать в скриптах для регулярного резервного копирования по планировщику CRON.
Разворачивается такой дамп затем командой psql с ключем -f
psql -f all.sql postgres
Можно использовать перенаправления вывода и экспортировав дамп Postgres на одном сервере, загрузить его в базу на другом
pg_dump -h 123.123.123.123 DATABASE_NAME | psql -h 123.123.124.124 DATABASE_NAME
Читайте про создание дампов и их импорт для MySQL