PostgreSQL: справочник по командам

Все команды запускаются под пользователем postgres

psql -l - список баз данных.
psql -d itpages - подключение к БД itpages.
psql -f itpages.sql - выполнение команд из файла itpages.sql.


Команды psql

\c dbname - подсоединение к БД dbname.
\l - список баз данных.
\dt - список всех таблиц.
\d table - структура таблицы table.
\du - список всех пользователей и их привилегий.
\dt+ - список всех таблиц с описанием.
\dt *s* - список всех таблиц, содержащих s в имени.
\i FILE - выполнить команды из файла FILE.
\o FILE - сохранить результат запроса в файл FILE.
\a - переключение между режимами вывода: с/без выравнивания.

Бекап и восстановление таблиц — наверно самое вкусное в этой статье так как часто спрашивают как это делать =)

В PostgreSQL есть две утилиты для бекапа pg_dump и pg_dumpall.

pg_dump - используется для бекапа одной базы 
pg_dumpall - для бекапа всех баз и сервера в целом

Создание бекапа базы itpages, в сжатом виде

pg_dump -h localhost -p 5432 -U someuser -F c -b -v -f itpages.sql itpages

Создание резервной копии с сжатием в gz

pg_dump -h localhost -p 5432 -U someuser itpages | gzip -c > itpages.gz

Дамп данных только одной, конкретной таблицы.

pg_dump -a -t table_site_top -f file_table_site_top itpages

table_site_top - таблица
file_table_site_top - файл куда сохранить таблицу 
itpages - база откуда копировать таблицу

Резервное копирование всех баз данных

pg_dumpall > all.sql

В PostgreSQL есть две утилиты для восстановления базы из резервной копии.

psql - восстановление бекапов, которые хранятся в обычном текстовом файле (plain text);
pg_restore - восстановление сжатых бекапов (tar);

Восстановление всего бекапа с игнорированием ошибок

psql -h localhost -U postgres -d itpages -f itpages.sql

Восстановление резервной копии БД, сжатой gz

gunzip itpages.gz
psql -d itpages -f itpages

Обслуживание таблицы

VACUUM ANALYZE table;
REINDEX DATABASE dbName;
REINDEX TABLE tabName;