Полная полная репликация базы данных MySQL? Идеи? Что делают люди? - PullRequest
18 голосов
/ 06 августа 2008

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

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

0 голосов
/ 21 февраля 2010

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

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

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

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

...