Полная репликация базы данных MySQL? Идеи? Что делают люди?

В настоящее время у меня есть два Linux-сервера под управлением MySQL, один из которых находится на стойке рядом со мной под каналом загрузки 10 Мбит / с (главный сервер), а другой в нескольких милях от него на канале загрузки со скоростью 3 Мбит / с (зеркало).

Я хочу иметь возможность непрерывно реплицировать данные на обоих серверах, но столкнулся с несколькими препятствиями. Одна из них заключается в том, что в конфигурациях MySQL master / slave время от времени выпадают некоторые операторы (!), Что означает; некоторые люди, входящие в систему по URL-адресу зеркала, не видят данных, которые, как я знаю, находятся на главном сервере, и наоборот. Допустим, это происходит с осмысленным блоком данных один раз в месяц, поэтому я могу смириться с этим и предположить, что это проблема «потерянного пакета» (т.е. бог знает, но мы компенсируем).

Другая наиболее важная (и раздражающая) повторяющаяся проблема заключается в том, что когда по какой-то причине мы выполняем крупную загрузку или обновление (или перезагрузку) на одном конце и должны разорвать ссылку, тогда ЗАГРУЗИТЬ ДАННЫЕ ИЗ МАСТЕРА не работает, и мне приходится вручную выгружать с одного конца и загружать с другого, что в настоящее время является довольно сложной задачей, перемещая около 0,5 ТБ ценность данных.

Есть ли софт для этого? Я знаю, что MySQL («корпорация») предлагает это как ОЧЕНЬ дорогую услугу (полная репликация базы данных). Что там делают люди? По своей структуре мы запускаем автоматическое переключение при отказе, когда, если один сервер не работает, основной URL-адрес просто разрешается на другой сервер.


person mauriciopastrana    schedule 06.08.2008    source источник
comment
Возможно, это может быть источником вдохновения: http://www.howtoforge.com/loadbalanced_mysql_cluster_debian   -  person svrist    schedule 06.08.2008


Ответы (3)


Мы в Percona предлагаем бесплатные инструменты для обнаружения расхождений между мастером и сервером и для восстановления их синхронизации путем повторного применения минимальных изменений.

person Bill Karwin    schedule 21.09.2011

GoldenGate - очень хорошее решение, но, вероятно, такое же дорогое, как репликатор MySQL.

Он в основном ведет журнал и применяет изменения в зависимости от того, что было совершено. Они поддерживают двунаправленную репликацию (сложная задача) и репликацию между гетерогенными системами.

Поскольку они работают, обрабатывая файл журнала, они могут выполнять крупномасштабную распределенную репликацию, не влияя на производительность на исходной машине (ах).

person Mark Harrison    schedule 06.08.2008

Я никогда не видел отброшенных операторов, но есть ошибка, из-за которой сетевые проблемы могут вызвать повреждение журнала реле. Убедитесь, что вы не запускаете mysql без этого исправления.

Задокументировано в журналах изменений 5.0.56, 5.1.24 и 6.0.5 следующим образом:

   Network timeouts between the master and the slave could result
   in corruption of the relay log.

http://bugs.mysql.com/bug.php?id=26489

person serbaut    schedule 20.02.2010