PostgreSQL

Материал из Fabius NET DEV
Перейти к: навигация, поиск

Загрузка PostgreSQL 11 для Windows

Скачать PostgreSQL 11 для Windows можно, конечно же, с официального сайта PostgreSQL, вот ссылка - https://www.postgresql.org/download/windows/

После перехода на страницу можем сразу нажимать на ссылку «Download the installer», в данном случае нас перенесет на сайт компании EnterpriseDB, которая и подготавливает графические дистрибутивы PostgreSQL для многих платформ, в том числе и для Windows.


Запуск установщика PostgreSQL 11

Запускаем скаченный файл. Сначала инсталлятор проверит наличие всех необходимых компонентов, в частности Visual C++ Redistributable, в случае необходимости, т.е. их отсутствия, он их сам установит.

После этого откроется окно приветствия, нажимаем «Next».

Затем нам нужно указать путь к каталогу, в который мы хотим установить PostgreSQL 11, но можно оставить и по умолчанию. В случае необходимости указывайте путь и нажимайте «Next».

На этом шаге мы можем отметить компоненты, которые нам необходимо установить, как видите, в числе компонентов есть и pgAdmin 4, оставляем галочки напротив нужных нам компонентов и жмем «Next».

Далее нам необходимо указать каталог, в котором по умолчанию будут располагаться файлы баз данных. В данном случае лучше указать отдельный диск. Нажимаем «Next».

Теперь нам нужно задать пароль для пользователя postgres, иными словами, для администратора PostgreSQL Server. Вводим пароль и подтверждаем его. Нажимаем «Next».

Далее в случае необходимости мы можем изменить порт, на котором будет работать PostgreSQL Server, но можно оставить и по умолчанию. Нажимаем «Next».

Потом, если есть необходимость указать конкретную кодировку данных в базе, мы можем выбрать из выпадающего списка нужную нам Locale.

Здесь мы просто проверяем введенные нами ранее параметры для установки PostgreSQL, если все правильно, т.е. все то, что Вы и вводили, нажимаем «Next».

Для того чтобы запустить процесс установки PostgreSQL в данном окне, нажимаем «Next».

ВАЖНО!

После установки надо разрешить доступ из других компов сети.
Для этого в файле c:\PostgreSQL\data\pg10\pg_hba.conf
надо прописать строку

host all all 0.0.0.0/0 md5

Размещение базы на других дисках (папках)

Путь указывается в реестре (хотя путь есть и в конфиг файле - postgresql.conf, но с ним не удалось!)
По шагам: 1) Остановите сервис PostgreSQL - Панель Управления -> Администрирование -> Службы. Находите postgresql-x.x. Клик правой кнопкой - Stop;
2) Теперь можете скопировать папку данных C:\Program Files\PostgreSQL\x.x\data\ в новую папку, для примера в - D:\pg\;
3) Для новой папки назначаем полные права доступа для NETWORK SERVICE роли;
4) Отредактируйте реестр. (Win+R) и в текстовом поле наберите команду regedit. Запустится редактор реестра.
Переходим в ветку: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/postgresql-x.x. Клик правой кнопкой мыши по ключу ImagePath - изменить.
Изменяете путь к папке, которая во вторых кавычках
C:/Program Files/PostgreSQL/9.2/bin/pg_ctl.exe runservice -N "postgresql-9.2" -D "C:/Program Files/PostgreSQL/9.2/data" -w
на C:/Program Files/PostgreSQL/9.2/ bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/pg/data" -w;
Ключ -D означает путь размещения данных.
5)Почти все готово, теперь можете удалить папку C:\Program Files\PostgreSQL\x.x\data\ и запустить сервис postgresql-x.x.

Действия описаны также в статье [1]

Репликация данных

На мастере

Подключаемся к СУБД командой:

psql.exe -U postgres

Включаем режим дублирования данных:

alter system set wal_level=hot_standby;

Отключаем режим архивирования:

alter system set archive_mode=off;

Разрешаем создавать слоты репликации:

alter system set max_replication_slots=1;

Задаём максимальное количество процессов репликации данных (второй процесс будет обслуживать работу утилиты pgadmin):

alter system set max_wal_senders=2;

Выполняем команду "\!"

Редактируем файл pg_hba.conf . Он отвечает за доступ хостов\пользователей к СУБД. Добавляем строчки:

host all all <ip-мастера> md5

host all all <ip-slave> md5

host replication postgres <ip-мастера> trust

host replication postgres <ip-slave> trust


На слейве

Останавливаем службу postgresql.

Удаляем содержимое папки C:\Program Files\PostgreSQL\11\data

Делаем бэкап с мастера при помощи команды pg_basebackup. В качестве параметров используем:

pg_basebackup -h <ip-мастера> -D "C:\Program Files\PostgreSQL\11\data" -U postgres


Заходим в файл postgresql.conf и устанавливаем параметры:

hot_standby=on

hot_standby_feedback=on

wal_receiver_status_interval=0

Возвращаемся на мастер

Назначаем хост мастером:

alter system set hot_standby=off;

Отключаем ожидание отклика от слейва:

alter system set hot_standby_feedback=off;

Отключаем интервал в передаче WAL-журнала:

alter system set wal_receiver_status_interval=0;

Перезапускаем службу СУБД на мастере (можно не выходя из psql):


5. Создаём слот репликации:

select pg_create_physical_replication_slot('slot_1');

Смотрите также

Установка, настройка, начало работы