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

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

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

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

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

Может быть, это могло быть источником вдохновения: http://www.howtoforge.com/loadbalanced_mysql_cluster_debian

svrist 06.08.2008 23:12
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
19
1
2 799
3

Ответы 3

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

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

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

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

Documented in the 5.0.56, 5.1.24, and 6.0.5 changelogs as follows:

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

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

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

Другие вопросы по теме