Включение PostgreSQL репликации на платформе Jelastic в облаке InfoboxCloud

Репликация — важный процесс для любого сервера баз данных. Настроив репликацию с одного сервера на несколько дополнительных Вы сможете значительно уменьшить вероятность потери данных.

Данная статья посвящена настройкe кластера PostgreSQL. С Jelastic Вы можете легко создать кластер с одним или несколькими резервными серверами, готовыми взять на себя основные операции, если основной сервер выйдет из строя. В этом случае основной сервер работает в режиме архивирования, в то время как резервный работает в режиме восстановления, считывая данные с журнала транзакций WAL (Write-Ahead Logging) основного сервера.

image

В случае полного отказа основного сервера, содержимое WAL будет передано на резервные серверы с минимальной задержкой.

В сегодняшней статье мы рассмотрим процесс создания репликации базы PostgreSQL на один или несколько резервных серверов. Резервная база данных будет использована только в режиме чтения. Это самый быстрый способ репликации доступный для WAL данных, отправляемых с основного сервера на резервный.

Создание окружения

Первым шагом является создание двух одинаковых окружений с PostgreSQL базой: одно для главной базы данных и одно для резервной.

1.Войдите в свой Jelastic аккаунт и нажмите на кнопку «Создать окружение», выберите PostgreSQL 9 в качестве базы данных и количество используемых клаудлетов. Затем укажите имя окружения для этой базы (основной).

image

После создания окружения в панели Jelastic Вы увидите:

image

2. Теперь необходимо создать еще одно окружение с PostgreSQL 9 или клонировать существующее. Это будет резервная база данных, размещенная на другой ноде для обеспечения безопасности и надежности хранения данных.

image

Итак, сейчас у нас есть 2 идентичных окружения с PostgreSQL базами.

Примечание: Если репликация настраивается для уже существующей базы, нужно перед включением репликации провести копирование данных с мастера на резервный сервер.

Настройка репликации

1. На ноде основной базы нажмите кнопку «Конфигурация»

image

и перейдите в папку conf. Измените следующие параметры в файле postgresql.conf для того, чтобы включить потоковую репликацию:

listen_address = '*'

wal_level = hot_standby

max_wal_senders = 3


image
2. Перейдите к файлу pg_hba.conf на основной базе данных ( в папке conf) и откройте доступ для резервного сервера:

host  replication   all   {standby_ip_address}/32      trust


Вместо {standby_ip_adress} нужно вставить адрес вашего резервного standby сервера. Посмотреть его можно тут:

image

откроется окно с внутренним IP адресом:

image

Вот, что у нас получилось:

image

3. Затем, откройте папку conf на ноде резервной базы данных, перейдите к postgresql.conf и включите режим hot standby. Это позволит обеспечить постоянное подключение к основному серверу для чтения данных. При этом сам резервный сервер будет находится в режиме ожидания/копирования данных.

hot_standby = on


image

4. Создайте файл recovery.conf в папке conf резервного сервера (в том же каталоге, postgresql.conf и pg_hba.conf), содержащий следующие строки:

standby_mode = 'on'

primary_conninfo = 'host={master_ip_address}'

, где {master_ip_address} – ip адрес мастер-ноды.

image

5. Перезапустите обе ноды (основной и резервный сервер) для применения настроек.

image

Проверим, что получилось


1. Авторизуйтесь в основной базе через phpPgAdmin (учетные данные были высланы Вам при создании окружения и самой базы) и создайте новую базу данных.

image

image

2. Авторизуйтесь в резервной базе данных и проверьте создана ли копия основной базы. Если вы создавали standby ноду в режиме клонирования master — можно выполнить сброс пароля для получения доступа к ноде. На резервную ноду при включенном режиме standby не получится зайти через веб-интерфейс. Чтобы проверить, что репликация работает переименуйте recovery.conf в recovery.con. Перезапустите резервную ноду. Теперь можно зайти через веб-интерфейс и убедиться, что репликация работает и база habrahabr появилась. После этого не забудьте переименовать recovery.con в recovery.conf обратно и перезапустить резервную ноду.



Всего несколько несложных действий позволят Вам создать надежный кластер базы данных!

Удачи с использованием платформы Jelastic в InfoboxCloud!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.