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

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

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

Другая наиболее важная (и раздражающая) повторяющаяся проблема заключается в том, что, когда по какой-то причине мы делаем крупную загрузку или обновление (или перезагрузку) на одном конце и должны разорвать ссылку, тогда LOAD DATA FROM MASTER не работает, и у меня есть вручную выгрузить на одном конце и загрузить на другом, в настоящее время это довольно трудная задача - переместить данные объемом около 5 ТБ.

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

6.08.2008 18:24:42
Возможно, это может быть источником вдохновения: http://www.howtoforge.com/loadbalanced_mysql_cluster_debian
svrist 6.08.2008 19:12:45
3 ОТВЕТА

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

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

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

0
6.08.2008 18:30:45

Я никогда не видел пропущенных операторов, но есть ошибка, из-за которой проблемы с сетью могут привести к повреждению журнала ретрансляции. Убедитесь, что вы не запускаете 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

0
20.02.2010 22:26:39

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

2
21.09.2011 00:09:04