Удаление и импорт данных в базу psql

Для создания дампа БД 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.

После завершения задачи файл с именем 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

Удаление базы данных

Базы данных удаляются командой DROP DATABASE:

DROP DATABASE имя;

Лишь владелец базы данных или суперпользователь могут удалить базу. При удалении также удаляются все её объекты. Удаление базы данных это необратимая операция.

Невозможно выполнить команду DROP DATABASE пока существует хоть одно подключение к заданной базе. Однако можно подключиться к любой другой, в том числе и template1template1 может быть единственной возможностью при удалении последней пользовательской базы данных кластера.

Также существует утилита командной строки для удаления баз данных dropdb:

dropdb dbname

(В отличие от команды createdb утилита не использует имя текущего пользователя по умолчанию).

Добавить комментарий