Раздел помощи SpaceWeb

Как создать дамп и перенести базу данных PostgreSQL

08 май, 2024

Создание дампа БД PostgreSQL

Для создания дампа БД PostgreSQL следует использовать в консоли SSH команду следующего вида:

pg_dump -h hostname -U username -F format -f dumpfile dbname

где:

  • hostname — имя сервера БД;
  • username — имя пользователя БД (совпадает с именем базы данных);
  • format — формат дампа (может быть одной из трех букв: 'с' (custom - архив .tar.gz), 't' (tar - tar-файл), 'p' (plain - текстовый файл). В команде букву надо указывать без кавычек.);
  • dumpfile — имя создаваемого файла дампа;
  • dbname — имя базы данных.
Для баз созданных до 16.09.2019 имя хоста будет выглядеть так: pg.sweb.ru; для баз данных, которые были созданы после 16.09.2019 имя хоста будет таким: pg2.sweb.ru. Для баз данных созданных после 24.04.2023 имя хоста будет таким: pg3.sweb.ru

После завершения задачи файл с именем dumpfile будет размещен в директории, из которой запускалась команда.

Пример создания дампа базы vh36sup в файл архива формата postgress. где custom — архив, в формате самого postgress:

pg_dump -h pg2.sweb.ru -U vh36sup -F c -f dump.tar.gz vhsup

Импорт дампа БД PostgreSQL

Для импорта необходимо использовать команду вида:

pg_restore -h hostname -U username -F format -d dbname dumpfile

Параметры аналогичные, за исключением того, что format может быть либо 'c', либо 't'.

Пример загрузки архива дампа dump.tar.gz в базу vhsup:

pg_restore -h pg2.sweb.ru -U vhsup -F c -d vhsup dump.tar.gz

Дампы представленные в виде текстового файла можно импортировать с помощью следующей команды:

cat dumpfile | psql -h hostname -U username dbname