У меня есть 2 сервера PostgreSQL, и я настроил потоковую репликацию между ними.Я создал сценарий оболочки, который будет пинговать главный сервер каждую минуту и будет продвигать подчиненное устройство как главное, когда мастер не отвечает.Я использую rh-postgresql95, и сторонние инструменты не работают с этой версией.
Моя строка подключения JDBC имеет разделенные запятыми узлы с targetServerType = master, как показано ниже
jdbc:postgresql://node1,node2/accounting?targetServerType=master.
Я просто хочузнаете, как можно избежать сценария расщепления мозга, если раб становится мастером, а старый мастер тоже каким-то образом появляется?
или
Есть ли так, чтобы старый мастер никогда не появлялся автоматически?
РЕДАКТИРОВАТЬ
узел1 является мастерома node2 - это ведомое устройство в моей строке подключения JDBC.
Я остановил службу postgres на ведущем устройстве и назначил ведомое устройство на нового главного устройства.В этом случае сервис указывал на нового мастера.
Затем я перезапустил службу postgres на старом мастере, и служба начала указывать на старый мастер (node1 - это ip старого мастера, и он идет первым в строке подключения JDBC.).
Итак, я не сделалЭто может привести к расщеплению мозга, но этот сценарий приведет к несогласованности данных.