Инфраструктура
У меня есть два сервера баз данных, работающих на двух разных компьютерах. Одна работает как первичная база данных для моего веб-приложения, а другая - как вторичная база данных. Вторичная база данных обновляется средствами репликации на сервере mysql. Первичный сервер базы данных работает как главный, а вторичный сервер базы данных работает как клиент.
Требование
в настоящее время мое веб-приложение взаимодействует только с первичной базой данных. Я хочу добавить функцию, которая позволит приложению использовать вторичный сервер базы данных, если первичный по какой-то причине не работает. Теперь мне нужен какой-то инструмент / программа для синхронизации изменений, внесенных во вторичную базу данных, с первичной базой данных, когда она работает.
В основном я ищу функцию, которая позволит моим базам данных постоянно синхронизироваться без сбоев. Пожалуйста, посоветуйте мне, как я могу этого добиться?
Спасибо,
Виджай
Вам нужно сделать что-то, что называется репликацией с несколькими мастерами (она же репликация мастер-мастер).
Есть число из гиды которые проводят вас через процесс.
Есть два способа использовать настройку репликации мастер-мастер. Неправильный способ - писать (INSERT / UPDATE и т. Д.) Одновременно на обоих мастерах. Хотя MySQL предоставляет параметры конфигурации это может Помогите Если вы решите сделать это, я предлагаю вам не полагаться на такое поведение. В частности, не думайте, что вы можете разделить свои записи между машинами в качестве какой-то балансировки нагрузки, такой вещи нет. Все записи будут происходить на всех серверах.
Правильный способ - использовать один мастер в качестве горячего резерва и писать только одному мастеру за раз. Поверьте, это избавит вас от душевной боли, когда что-то пойдет не так. Есть даже инструмент, МММ (Multi-Master Replication Manager для MySQL), который может помочь с мониторингом и переключением при отказе для этого. Однако для мониторинга мастеров требуется третий сервер.
И последнее. НЕ, повторяю, НЕ попробуйте «масштабировать» наружу, добавив дополнительных мастеров для создания петли. Как я сказал ранее, это вообще не масштабируется, так как каждый сервер должен делать каждая запись из каждый второй сервер. Это также полный страшный сон для восстановления репликации при непреходящем отказе одного из мастеров. Потеря одного сервера "ломает" каждый сервер в последующем цикле, потому что они больше не получают обновления от нижестоящих серверов.