Копировать из рабов на мастера и наоборот

У меня здесь большая дилемма, и я не знал, как ее решить. Мне нужно скопировать несколько таблиц из MySQL DB (ведомых) в MySQL DB (master). Возьмите в качестве примера это:

MySQL DB (master)
 table1
 table2
 table3

MySQL DB (slave1)
 table1
 table2
 table3

MySQL DB (slave2)
 table1
 table2
 table3

MySQL DB (master) должен реплицировать содержимое table1 все дни в MySQL DB (slave1, slave2), а MySQL DB (slave1, slave2) должен реплицировать содержимое table2 и table3 в MySQL DB (master) все дни. Таблицы идентичны, но данные могут меняться между ведущим и ведомым. У меня есть несколько вопросов по этому поводу:

  1. Кто-нибудь знает решение для этого? Я имею в виду, как я могу это реализовать?
  2. Хосты MySQL не находятся в одной сети, так как бороться с этой стороной?
  3. Поскольку таблицы имеют одинаковую структуру, что происходит, если, например, столбцы идентификаторов имеют одинаковые значения в основной таблице1 и в подчиненной таблице1? Будет перезаписан? Будет ли добавлена ​​новая запись?
  4. Как сохранить целостность?
  5. Что произойдет, если ведомые устройства изменят запись, ранее синхронизированную с ведущим?

Хостами MySQL в основном являются Windows 7 PC

1 ответ

Репликация MySQL не предназначена для такой работы. Если вы разрешите записи на ведомых устройствах репликации, то ваша база данных, скорее всего, со временем станет несовместимой. Конечно, возможна репликация с несколькими хозяевами, но вы / ваше программное обеспечение должны быть очень осторожны, чтобы не делать ничего, что могло бы привести к будущим несоответствиям.

Я бы рекомендовал не делать этого. Либо придерживайтесь одного мастера, который получает все запросы, которые изменяют данные и отправляют запросы на чтение одному из подчиненных, либо настраивает MySQL Cluster.

Другие вопросы по тегам