Настройка потоковой репликации с replication slots в postgresql 9.6 в docker контейнерах через docker-compose

Настройка потоковой репликации с replication slots в postgresql 9.6 в docker контейнерах через docker-compose

Исходные данные — виртуалки для docker c ip

На них есть docker-ce и docker-compose

Настройка master сервера postgresql

Создадим директории для нашего добра на мастере

Создаем файл docker-compose.yml

Вставляем в него

Поднимаем контейнер

Заходим в контейнер на мастере

Создаем пользователя для репликации

Правим конфиг на мастере

Добавим в конец

Правим pg_hba.conf

Добавим в конец

Создаем слоты репликации на мастере

Релоадим конфиг на мастере в докере

Настройка слейва №1

Создадим директории для нашего добра на слейве

Создаем файл docker-compose.yml

Вставляем в него

Затем поднимаем контейнер

Заходим в контейнер на слейве

Снимаем данные с мастера

Введем пароль от пользователя replica
Поправим файл

Добавим в конец

Выходим из docker конейнера
Делаем

Правим файл docker-compose.yml

Изменяем в нем закоментированную строку slave и data комментируем #

Затем поднимаем контейнер

Проверяем статус репликации на мастере

Со вторым слейвом делаем тоже самое, только в recovery.conf

Промоутим реплику до мастера

В контейнере реплики например 10.10.1.2 делаем

Переключение второй реплики на новый мастер — допустим им стал 10.10.1.2

2 thoughts on “Настройка потоковой репликации с replication slots в postgresql 9.6 в docker контейнерах через docker-compose

  1. Какую смысловую нагрузку тут несё докер? Всё можно раскатывать ансиблем. Если бы был пример как скейлить, но это больше подходит для мультимастер репликации.

  2. Докером можно быстро поднимать множество постгрес инстансов на вм. В общем — это удобно.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *