MySQL Multi-Master Replication в нескольких местах

У меня есть база данных, которая работает в двух удаленных местах. (A и B) Сервер доступен локально в одном месте (A). Однако второе место (B) получает доступ к базе данных через Интернет.

В случае, если Интернет в месте A не работает, местоположение B теряет соединение с базой данных.

Можно ли как-то поместить другой сервер в местоположение B с непрерывной репликацией и следующими условиями: - Если Интернет работает в местоположении A, то пользователи получают доступ только к серверам местоположения A. Пользователи могут получить доступ к серверу, доступному в местоположении B, до тех пор, пока в местоположении A не отключится Интернет. После восстановления подключения обе базы данных могут реплицироваться. Если есть какое-либо несоответствие/дублирование, то местоположение A будет считаться основным, и изменения будут перезаписаны?

Я хотел бы знать, возможно ли такое решение и с какими проблемами я могу столкнуться при этой установке?


person Ashwin Gupta    schedule 09.09.2017    source источник
comment
В MySQL нет механизма для рассмотрения данных одного мастера лучше, чем другого. Разрешение конфликтов выполняется вручную, и репликация останавливается при обнаружении конфликта. См. также Теорему CAP.   -  person Michael - sqlbot    schedule 09.09.2017


Ответы (1)


MariaDB 10+ предлагает кластер Galera с несколькими основными настройками. В основном все серверы (в вашем случае 3) будут мастерами, и данные на 1 сервер пойдут на другие. Если один выходит из строя, другие серверы продолжают работать. Как только сервер возвращается, он синхронизирует недостающие данные.

Это уровень базы данных

Для уровня подключения вам потребуется устройство типа «балансировщик нагрузки», которое распределяет нагрузку между включенными компьютерами или обнаруживает выключенный компьютер и направляет его на другие. Их трудно найти для серверов типа mysql. Но .. осуществимо, если это ваш вопрос

person Jacques Amar    schedule 09.09.2017