Переход от
https://njs375666635.iteye.com/blog/2242067
Взаимная поддержка мульти-мастер и мастер-ведомые репликации есть некоторые различия, потому что может иметь доступ на запись к серверу в мульти-мастере, так как он предназначен для увеличения повторить вопрос
Проблемы (от множественного первичного роста ID повтора)
1: Во- первых, мы синхронизации, структура таблицы Б Тест
2: остановлена А, таблица данных теста (из - за наличия роста ID) на операции вставки B, вставлен идентификатор возвращается . 1
3: остановлен B, вставки операции по испытанию таблицы данных (с наличием роста ID) в, возвращаемый ID вставки также 1.
4: затем мы начинаем в то же время, в, первичный ключ идентификатор будет повторяться
решение: до
тех пор , как мы гарантируем , что разные вставлен на обоих серверах по данным роста на нем
, например: проверке нечетным ID, B вилка четные ID, конечно, если сервер и многого другого, вы можете определить алгоритм, пока отличаются от него ,
где мы являемся, Добавьте параметр B, для того , чтобы достичь четности вставки
A: добавить параметры в my.cnf
auto_increment_offset = 1
auto_increment_increment 2 =
значение а, что генерируемое поле auto_increment: 1, 3, 5, 7, ... из нечетных чисел ID
B: мой. Добавьте параметры КНФ
auto_increment_offset = 2
auto_increment_increment = 2
AUTO_INCREMENT поля B , полученные такими значениями являются: 2, 4, 6, 8, ... и поэтому даже идентификатор
Как можно видеть, ваше поле auto_increment не будет повторяться на разных серверах, так Master-Master структура не будет никаких проблем. Конечно, вы можете также использовать три, четыре или N-серверов, до тех пор, как auto_increment_increment = N, то набор о auto_increment_offset к соответствующему исходному значению на нем, так что мы можем иметь десятки мастер-сервера MySQL в то же самое время, и поскольку рост не будет повторять ID.
1: Во- первых, мы синхронизации, структура таблицы Б Тест
2: остановлена А, таблица данных теста (из - за наличия роста ID) на операции вставки B, вставлен идентификатор возвращается . 1
3: остановлен B, вставки операции по испытанию таблицы данных (с наличием роста ID) в, возвращаемый ID вставки также 1.
4: затем мы начинаем в то же время, в, первичный ключ идентификатор будет повторяться
решение: до
тех пор , как мы гарантируем , что разные вставлен на обоих серверах по данным роста на нем
, например: проверке нечетным ID, B вилка четные ID, конечно, если сервер и многого другого, вы можете определить алгоритм, пока отличаются от него ,
где мы являемся, Добавьте параметр B, для того , чтобы достичь четности вставки
A: добавить параметры в my.cnf
auto_increment_offset = 1
auto_increment_increment 2 =
значение а, что генерируемое поле auto_increment: 1, 3, 5, 7, ... из нечетных чисел ID
B: мой. Добавьте параметры КНФ
auto_increment_offset = 2
auto_increment_increment = 2
AUTO_INCREMENT поля B , полученные такими значениями являются: 2, 4, 6, 8, ... и поэтому даже идентификатор
Как можно видеть, ваше поле auto_increment не будет повторяться на разных серверах, так Master-Master структура не будет никаких проблем. Конечно, вы можете также использовать три, четыре или N-серверов, до тех пор, как auto_increment_increment = N, то набор о auto_increment_offset к соответствующему исходному значению на нем, так что мы можем иметь десятки мастер-сервера MySQL в то же самое время, и поскольку рост не будет повторять ID.