Назад | Перейти на главную страницу

Дублирование данных между двумя кластерами Percona Xtradb с использованием репликации MySQL

В настоящее время у нас есть 3-узловой кластер Percona Xtradb, работающий в одном центре обработки данных. Мы хотим добавить отказоустойчивость в случае аварии, чтобы не полагаться на один центр обработки данных, и синхронизировать наши данные Percona со вторым центром обработки данных, чтобы мы могли легко переключать наши приложения для подключения к новому синхронизированному кластеру в случае такого мероприятие.

Хотя я знаю, что могу просто добавить больше главных узлов во многие центры обработки данных, мы не можем жертвовать увеличением времени записи туда и обратно для центра обработки данных в другом месте. Вместо этого мне было интересно, можно ли это сделать с помощью репликации MySQL. Я думаю, что нужно настроить это так:

Главный кластер Percona с 3 узлами -> База данных реплик MySQL -> Вторичный кластер Percona с 3 узлами

Хотя я понимаю, что возможна небольшая задержка реплик и данные могут рассинхронизироваться на несколько секунд, это компромисс, на который мы готовы пойти. С такой настройкой нам было бы легко переключать кластеры одним щелчком переключателя.

У меня есть несколько вопросов:

  1. Это плохая идея? Я лично не вижу здесь серьезных недостатков, но я чего-то упускаю?
  2. Возможно ли, чтобы подчиненная реплика MySQL могла получать данные (из основного кластера Percona) и записывать данные (во вторичный кластер Percona)?
  3. Что произойдет, если основной кластер Percona выйдет из строя и мы начнем использовать / писать во вторичный кластер Percona? Когда главный кластер Percona возвращается, как мы можем легко синхронизировать его с новыми данными из вторичного кластера Percona? Можем ли мы просто (временно) создать кластер из 6 узлов, и Percona выполнит всю работу?

Я знаю много вопросов, но большое спасибо за вашу помощь!

Кластер -> MySQL -> Кластер работает. Хотя я сам не пробовал, я знаю, что Cluster-> Cluster должен был стать вариантом Скоро ™ несколько месяцев назад, так что вы можете пропустить промежуточный шаг. В PoV PXC вы порабощаете себя одной из машин, а другие машины порабощают себя вами; вы не столько "получаете данные и записываете данные", сколько получаете данные и позволяя получать данные от вас, если это различие имеет смысл.

Для повторной синхронизации просто настройте как мастер-мастер с настроенным вручную auto_increment_increment и auto_increment_offset на каждом из кластеров. Возможно, это просто, но в худшем случае это будет означать ограничение auto_increment_ {increment, offset}, выбранного PXC, что будет небольшим патчем.

Бонусные баллы: для максимальной скорости репликации измените (с sql_log_bin=0 в сеансе !!!) ваши таблицы в промежуточной базе данных для использования механизма черной дыры.