Резервное копирование базы PostgreSQL (Backup)
[root@localhost]# pg_dump --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format tar --blobs --encoding UTF8 --verbose --file /home/backup/postgres.dump "dbname"
или можно так
[root@localhost]# pg_dump -U user dbname > /home/backup/postgres.dump
Восстановление базы PostgreSQL (Restore)
[root@localhost]# /usr/pgsql-9.6/bin/pg_restore -U postgres -d dbname /home/backup/postgres.dump
или можно так
Переключаемся на пользователя postgres
[root@localhost]# su - postgres
Восстанавливаем
Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.
bash-4.2$ psql -h localhost -U postgres -p 5432 dbname < /home/backup/postgres.dump
Полезные команды при работе с PostgreSQL в консоле
Создать пользователя и базу:
Переключаемся на пользователя postgres и запускаем psql
[root@localhost]# su - postgres
bash-4.2$ psql
Создаем базу “dbname”, создаем пользователя “dbuser” с паролем “pass”, назначаем привилегии и выходим
postgres=# create database dbname with encoding='UNICODE';
postgres=# create user dbuser with password 'pass';
postgres=# grant all privileges on database dbname to dbuser;
postgres=# \q
Ставим пароль на пользователя postgres
Переключаемся на пользователя postgres и запускаем psql
[root@localhost]# su - postgres
bash-4.2$ psql
Задаем пароль и выходим
postgres=# \password
Enter new password: postgres
Enter it again: postgres
postgres=# \q
Либо можно так:
postgres=# ALTER ROLE postgres WITH PASSWORD 'postgres';
postgres=# \q
Перезагрузить конфиг postgresql без перезапуска службы
Переключаемся на пользователя postgres
[root@localhost]# su - postgres
Перезагружаем конфиг
bash-4.2$ /usr/pgsql-9.6/bin/pg_ctl reload
Еще команды для работы с PostgreSQL
Выбрать базу dbname
bash-4.2$ psql -d dbname
Посмотреть колонки
postgres=# \d
Выводит список пользователей базы данных
postgres=# \du
Выводит список схем
postgres=# \dn
Выводит список баз данных на сервере и показывает их имена, владельцев, кодировку набора символов и права доступа
postgres=# \l