Comments 6
то ,что надо
Я так понимаю, защиты от SplitBrain в принципе не предусмотрено?
Тут играет роль сам кейс, приложение, для которого используется данная сборка функционирует на одном сервере, к примеру у нас возникла ситуация, что нет связи между серверами и поднялись оба, имеем два мастера, приложение запущено все так же на первом, но репликации нет, в виду отсутствия связи, что мы делаем после того, как связь появилась, ребутаем второй сервак и он поднимается репликой, данные снова согласованны. P.S. Данное решение не панацея) Конкретно в моем случае подходит, возможно его можно доработать и под другие кейсы
Безусловно, если в ваших условиях Split Brain допустим, то норм.
Просто я считаю необходимым предупреждать ищущих решение в интернете о возможности такой ситуации чтобы это не было сюрпризом. Что при потере связности узлов появятся два активных мастера и keepalive с чистой душой поднимет два одинаковых IP-шника на обоих нодах. И что в итоге за каша в данных может получиться даже бог не ведает.
Именно поэтому (почти) нет штатных двухузловых конфигураций кластеров на основе репликации. А не из-за вредности разработчиков :)
Про "почти" могу отдельно написать, если интересно. Но для двух локальных узлов можно посмотреть в сторону кластеризации не на основе репликации, а на основе Shared Storage. Как пример - PaceMaker (не к ночи помянут будет).
Репликация базы Postgrespro на двух нодах