Установка и настройка PostgreSQL 10 на Ubuntu 16.04

Настраиваем сервер — http://zztest.ru/?p=140.

Установка

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

Команду ниже нужно запускать под рутом:

sudo su - root
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \apt-key add -
exit
sudo apt-get update
sudo apt-get -y install postgresql-10

Разрешаем подключение к PostgreSQL по сети

sudo nano /etc/postgresql/10/main/postgresql.conf
listen_addresses = '*' # лучше указать список IP-адресов
port = ...
sudo nano /etc/postgresql/10/main/pg_hba.conf
host all all 19.25.87.19/32 md5 # добавить в конец, подсеть для подключения
# дополнительные подсети, например для администрирования и для боевой среды
sudo systemctl restart postgresql
sudo ufw allow ... # port

Восстановление из pg_dumpall

При необходимости, дамп нужно скачать

scp root@10.7.121.149:/var/www/ad/docker/postgres_server/share/postgres.dump /tmp/postgres.dump

Если я правильно понимаю это, по умолчанию пользователь postgres заблокирован, для разблокировки нужно задать ему пароль.

ВНИМАНИЕ! Во время восстановления к базе уже можно обращаться, но это может нарушить ее целостность, т.к. индексы еще могут не создаться. Поэтому запросы к бд лучше не производить.

sudo su - postgres
psql
\password postgres # задать пароль для пользователя
\q
psql -f /tmp/postgres.dump
exit

Настройка производительности

http://pgtune.leopard.in.ua/

https://ruhighload.com/%D0%A2%D1%8E%D0%BD%D0%B8%D0%BD%D0%B3+%D0%B1%D0%B0%D0%B7%D1%8B+postgres

SSL on/off

Выключение при не постоянных соединениях дает значительный прирост.

synchronous_commit

Отключение данного параметра дает значительный прирост скорости при изменении данных с небольшими рисками.

Настройка ролей

На основе https://www.8host.com/blog/ispolzovanie-rolej-i-upravlenie-dostupom-v-postgresql/

sudo su - postgres

Источники

Установка и настройка PostgreSQL 10 на Linux Ubuntu Server —
Заметки IT специалиста

How To Secure PostgreSQL Against Automated Attacks — Digital Ocean

Изменение порядка столбцов PostgreSQL

Часто возникает потребность изменить порядок столбцов в PostgreSQL. На текущий момент из коробки такой возможности нет. Документация предлагает создавать новую таблицу и переливать данные. Та же документация располагает несколькими примерами, в т.ч.:

  1. Воссоздание таблицы;
  2. Добавления колонок в конец с переливом данных.

В данной статье я опишу 2й способ в упрощенном и удобном для меня формате.

Читать далее Изменение порядка столбцов PostgreSQL