Запуск psql под пользователем postgres:
psql -h localhost -p 5432 -U user_name -W
Создать базу данных и пользователя:
postgres=# CREATE DATABASE test_database;
CREATE DATABASE
postgres=# CREATE USER test_user WITH password 'qwerty';
CREATE ROLE
postgres=# GRANT ALL privileges ON DATABASE test_database TO test_user;
GRANT
Изменить владельца базы:
ALTER DATABASE name OWNER TO new_owner;
Удалить базу данных и пользователя:
postgres=# DROP DATABASE test_database;
DROP DATABASE
postgres=# DROP USER test_user;
DROP USER
Вывести список пользователей:
postgres=# \du ;
Сделать пользователя суперпользователем:
postgres=#
ALTER USER username WITH SUPERUSER;
СОЗДАНИЕ ДАМПА БД POSTGRESQL
Для создания дампа БД PostgreSQL следует использовать в консоли SSH команду следующего вида:
pg_dump -h hostname -U username -F format -f dumpfile dbname
где:
hostname — имя сервера БД, это pg.sweb.ru;
username — имя пользователя БД (совпадает с именем базы данных);
format — формат дампа (может быть одной из трех букв: ‘с’ (custom – архив .tar.gz), ‘t’ (tar – tar-файл), ‘p’ (plain – текстовый файл). В команде букву надо указывать без кавычек.);
dumpfile — имя создаваемого файла дампа;
dbname — имя базы данных.
После завершения задачи файл с именем dumpfile будет размещен в директории, из которой запускалась команда.
Пример создания дампа базы vh36sup в файл архива формата postgress. где custom — архив, в формате самого postgress.
pg_dump -h pg.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 pg.sweb.ru -U vhsup -F c -d vhsup dump.tar.gz
Дампы представленные в виде текстового файла можно импортировать с помощью следующей команды:
cat dumpfile | psql -h hostname -U username dbname
ОБНОВЛЕНИЕ БАЗЫ
Вариант обновления базы через бекап и восстановление всей субд.
pg_dumpall > backupfile
psql -f backupfile postgres