Производительность репликации базы данных на двух основных устройствах невелика. Однако, если вы правильно закодируете свое приложение, вы получите отличную отработку отказа.
Настройка Master-Master, по сути, такая же, как и настройка Slave-Master, но при этом запущены как Slave, так и важные изменения в ваших конфигурационных файлах на каждой коробке.
Мастер MySQL 1:
auto_increment_increment = 2
auto_increment_offset = 1
Мастер MySQL 2:
auto_increment_increment = 2
auto_increment_offset = 2
Эти два параметра гарантируют, что, когда два сервера по какой-то причине борются за первичный ключ, они не дублируют и не уничтожают репликацию. Вместо увеличения на 1 любое поле автоинкремента будет по умолчанию увеличиваться на 2. В одном блоке начнется смещение от 1 и будет выполняться последовательность 1 3 5 7 9 11 13 и т. Д. Во втором блоке начнется смещение в 2 и бегите вдоль 2 4 6 8 10 12 и т. д. В результате текущего тестирования автоинкремент, по-видимому, берет следующий свободный номер, а не тот, который был ранее.
Например. Если сервер 1 вставляет первые 3 записи (1, 3 и 5), а сервер 2 вставляет четвертую, ему будет присвоен ключ 6 (а не 2, который не используется).
Как только вы это настроите, запустите их обоих как Рабов.
Затем, чтобы проверить, что оба работают нормально, подключитесь к обеим машинам и выполните команду SHOW SLAVE STATUS
, и вы должны заметить, что оба значения: Slave_IO_Running
и Slave_SQL_Running
должны сказать «ДА» на каждом поле.
Затем, конечно, создайте несколько записей в таблице и убедитесь, что в один блок вставляются только нечетные первичные ключи, а в другой - только инкрементные четные.
Затем выполните все тесты, чтобы убедиться, что вы можете выполнять все стандартные приложения на каждом боксе с его репликацией на другой.
Это относительно просто, как только это произойдет.
Но, как уже упоминалось, MySQL не одобряет это и советует вам убедиться, что вы помните об этой функциональности при написании кода приложения.
Редактировать: Я полагаю, теоретически возможно добавить больше мастеров, если вы убедитесь, что смещения правильны и так далее. Вы могли бы более реалистично, хотя, добавить несколько дополнительных рабов.