PostgreSQL
Содержание
Загрузка 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');