Unique keys и репликация мастер-мастер

  • Автор темы Автор темы kvf77
  • Дата начала Дата начала

kvf77

Red Devil
Ситуация: пропала связь с одним из мастер-серверов (он не упал - просто канал за сбоил).
Все переключились на второй.

В таблицу с составным ключем по дате и ид писались данные и на первом и на втором сервере.

При поднятии канала - репликация упала - потому что и на первом мастере и на втором были дубликаты записей.

Как победить такую ситуацию? Очень нужна ваша помощь.
 
Самый примитивный способ решения таких противоречий - это ID с шагом. Т.е. если 5 мастеров, то у каждого шаг =5 (ну или с запасом) и свое смещение.
 
ну написано же что тут НЕ автоинкрементный ключ, а составной
 
ну написано же "с составным ключем по дате и ид"
Но если вам больше нравится ответ, что мастер-мастер - это антипаттерн, который можно решить, но только очень хорошо зная структуру данных и способы работы с ними, то пожалуйста.
 
ЗЫ: введите в составной ключ ID ноды. Потом скриптами пройдетесь и сами решите - что делать с записями, у которых "ид" и дата одинаковые, но разные ноды. Хотя вообще я не понимаю, как вы с этим живете изначально... или репликация синхронная?
 
а победить нужно только актуальные последствия или на будущее тоже?

если последствия, то какой смысл у нас спрашивать, вам виднее.
если на будущее, то в любом случае менять структуру PK
 
да я четко понимаю, что надо менять структуру - только в наследие досталось много кода и куча гемора. хочу на время заткнуть дыру, чтобы спокойно переписать
 
если innodb - можно попробовать прописать FK с on update cascade, обновить конфликтующую часть PK на 2м (рабочем) сервере и синхронизировать
 
Сверху