Я настроил обычную (некластеризованную, ndb) репликацию Mysql Master-Master с двумя серверами для обеспечения высокой доступности. На каждом сервере есть приложение, которое может обновлять локальную базу данных, изменения распространяются на другую базу данных посредством репликации.
Возможно, что оба приложения могут выполнять обновление одного и того же элемента данных, при этом более новое приложение перезаписывает более старое в процессе репликации. Mysql Cluster решает эту проблему с помощью настройки разрешения конфликтов «выигрывает одно и то же значение».
Можно ли настроить аналогичные или одинаковые правила разрешения конфликтов для некластерной (ndb) репликации?
Итак, после нескольких дней расследования похоже, что ответ - «Нет» - репликация Mysql не поддерживает параметры разрешения конфликтов обновлений, как они доступны в кластере Mysql. Мне просто не удалось найти ни одной настройки или опции, которые указывали бы в правильном направлении.
К сожалению, Mysql Cluster не подходил для меня, потому что для него требуется как минимум 3 сервера (2 рабочих, один администратор), и я использую систему из 2 серверов.
Я исследовал полусинхронную репликацию (MySQL 5.5), но это также не помогло улучшить разрешение конфликтов.
В конце концов мне пришлось вернуться и заново продумать приложение, чтобы минимизировать / избежать риска конфликта.