Страница 1 из 1

MySQL Master Master

Добавлено: 2010-04-13 21:30:51
fox
Я написал новую статью, кому это интересно? Милости прошу…
http://www.lissyara.su/?id=2095
Хочу выразить благодарности Литературному отделу, Донецкого национального академического Украинского музыкально-драматического театра!
Девушки спасибо! Если бы не вы, не было бы этой статьи!

Re: MySQL Master Master

Добавлено: 2010-04-14 8:32:51
KIper
Спасибо за статью.
Вопрос в следующем, а есть возможность TLS/SSL соединения для репликации? Так что бы MySQL сам шифровал трафик при помощи сертификата и ключа.

Re: MySQL Master Master

Добавлено: 2010-04-15 22:22:13
fox
KIper писал(а):Спасибо за статью.
Вопрос в следующем, а есть возможность TLS/SSL соединения для репликации? Так что бы MySQL сам шифровал трафик при помощи сертификата и ключа.
Пожалуста...

Шифрование? Не знаю не читал за шифрование, просто в моём случае при ккроссовере в нём нет необходимости, будет время посмотрю, чисто из-за спортивного интереса...

Re: MySQL Master Master

Добавлено: 2010-04-26 20:43:00
Fioktist
Скажите, а Вы считали трафик который генерирует slave сервер допустим когда базы уже выровнены по содержимому?
Хочу попробывать совместно с rsunc сайт на bitrix так зеркалить, или если есть другие решения относительно bitrix ткните в ссылку.

Re: MySQL Master Master

Добавлено: 2010-04-26 20:55:11
fox
Fioktist писал(а):Скажите, а Вы считали трафик который генерирует slave сервер допустим когда базы уже выровнены по содержимому?
Хочу попробывать совместно с rsunc сайт на bitrix так зеркалить, или если есть другие решения относительно bitrix ткните в ссылку.
Нет не щитал, но думаю будет прямо пропорционален sql запросам...

C rcync я почти не работал но кажется он только в одну строну работает, Master Master может не получится, я не уверен...

Для чего Вам это? Хотите зазеркалить Веб-Сервера?

Re: MySQL Master Master

Добавлено: 2010-04-26 21:09:21
Fioktist
Да, хочу веб сайт зеркалить,
rsunc только для переноса файлов веб сайта,
а репликация MySQL базы сайта по Вашей статье, по варианту master to slave .

Re: MySQL Master Master

Добавлено: 2010-04-26 21:23:05
fox
Fioktist писал(а):Да, хочу веб сайт зеркалить,
rsunc только для переноса файлов веб сайта,
а репликация MySQL базы сайта по Вашей статье, по варианту master to slave .
Тогда, как вариант!
На lissyara.su есть статья о rsync
http://www.lissyara.su/articles/freebsd ... mms/rsync/

Re: MySQL Master Master

Добавлено: 2010-04-26 21:31:47
Fioktist
Спасибо, но вот если с rsunc понятно как он с файлами управляется то вот с MySQL пока непроверю жопа получается.
дело в том что живу в регионе где трафик еще считают и продают мегабайтами, шпд отсутствует так как инет спутниковый.

да и еще вот ремарочка, а почему Вы разместили топик не вот тут например Список форумов ‹ Программирование ‹ Базы Данных

Re: MySQL Master Master

Добавлено: 2010-04-26 21:35:58
fox
ПОтому, что это про сайт, здесь ветки обсуждения к статья из сайта...

Re: MySQL Master Master

Добавлено: 2010-04-26 21:53:39
Fioktist
Статья вселяет надежду, что хоть после выравнивания баз, при добавлении новых данных на мастере трафик не будет
генерироваться больше установленного лимита.
Ещебы добавить к статье инфы для каких задач испольовать репликацию.

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

на основе статьи буду пробывать зеркалить копию базы сайта на firstvds.ru и пускай оно по крону синхранизируется,
база у сайта дополняется от силы 10 новыми записями в день, глядиш и сэкономится...

Re: MySQL Master Master

Добавлено: 2010-04-26 22:04:42
fox
Fioktist писал(а):Статья вселяет надежду, что хоть после выравнивания баз, при добавлении новых данных на мастере трафик не будет
генерироваться больше установленного лимита.
Ещебы добавить к статье инфы для каких задач испольовать репликацию.

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

на основе статьи буду пробывать зеркалить копию базы сайта на firstvds.ru и пускай оно по крону синхранизируется,
база у сайта дополняется от силы 10 новыми записями в день, глядиш и сэкономится...
А что нет другой альтернативы с инетом?

Re: MySQL Master Master

Добавлено: 2010-04-26 22:15:01
Fioktist
:pardon: живу вот в этом регионе www.norcom.ru

а из двух вариантов синхрон или асинхрон предприятие выбирает синхрон, а он на порядок дороже

так что получается здесь самый дешевый нет -> это CD-DVDnet. ато что строит uralsvyazinform-severnyy-potok до нас врядли дотянется, у нас нефти нет.

Re: MySQL Master Master

Добавлено: 2010-04-26 22:30:54
fox
Сочувствую! А Wi-FI неоткуда, что вообще телекоммуникаций некаких? Допустим в 100 км если есть оптика то скорей всего и инет дешовый есть, а от туда можно по радео протаколу доставить, есть куча провайдеров типа wimax протокола (новый wi-fi)... Есть ещё более новый протакол который в частотах 5 GHz работает... Что некакой альтернативы? Только спутник и всё?

Re: MySQL Master Master

Добавлено: 2010-04-26 23:04:48
Fioktist
1504 или 896 км до ближайшего ШПД в инет

но я смотрю мои сообщения уже просто перерасли во флэйм не относящийся к статье, так что если модеры потрут то не жалко.

Re: MySQL Master Master

Добавлено: 2011-01-02 11:35:41
MK
Как будет вести себя репликация мастер-мастер на нагруженой бд? при балансировки нагрузки? в случае если сам добавил одну запись на одном сервере и она реплицировалась на второй это одно, но когда в единицу времени добавляется запись на 1м сервере и на 2м сервере, как будет себя вести данная связка? на сколько я понимаю блокировки нету? (пробовали сделать так, отключить один сервер добавить в него запись, отключить второй сервер, в него добавить другую запись в туже таблицу и включить их для синхронизации).

Re: MySQL Master Master

Добавлено: 2011-01-05 9:59:19
FiL
если на обоих серверах добавляется запись - это еще фигня. Ну встанут оба инсерта в очередь и в какой-то момент добавятся записи и там и тут. Может, правда, быть некая проблема с авто-инкрементными полями, но это таки мелочи (решается шагом инкремента и офсетом). Хуже с вариантом insert на одном сервере и delete на другом. И вот тут-то жопа приходит конкретная. Ибо на одном сначала пройдет инсерт, а потом делит (и удалит запись), а на другом сначала делит, а потом инсерт (и запись останется). И вот это уже совсем никуда не годится.

Re: MySQL Master Master

Добавлено: 2011-09-21 5:29:57
гость
подскажите
как реализовать мастер <-> мастер <-> мастер
возможно ли такое в принципе?

Re: MySQL Master Master

Добавлено: 2011-09-21 6:41:35
gekz
гость писал(а):подскажите
как реализовать мастер <-> мастер <-> мастер
возможно ли такое в принципе?
послежу

Re: MySQL Master Master

Добавлено: 2011-12-17 3:02:37
coolman
Привет всем!
Отличная статья единственное есть несколько вопросов.
1. Есть работающая база данных общий обьем около 50Гб, очень много обращений.
Планирую сделать репликацию для создания отказоустойчивости а также разделения нагрузки на одну базу (львиная часть запросов select)
Но дело в том что binlogi не велись как грамотно с минимальным down time сделать синхронизацию базы до момента когда начал писаться бинлог ?
Вариант с дампом всей базы и остановкой всех аппликаций крайне не желателен, так как дамп базы данных такого размера будет проходить долго что повлечет за собой большие финансовые потери.

2. есть ли возможность запрета конкретных операцию для конкретных таблиц базы данных для синхронизации ?
Как примеру я хочу чтоб тяжелые запросы аудита которые запускаются по журналу, запускались на разных серверах в разное время. т.е. запущенный тяжелый запрос определенный на определенной таблице, не должен быть передан slave. Есть такая возможность ?

Заранее благодарен всем за ваши ответы!

Re: MySQL Master Master

Добавлено: 2011-12-17 20:16:14
FiL
1. А бакапы базы вообще не делаются никогда? Ну тогда начните думать с бакапа. А потом можно будет просто взять последний бакап и с него начать.
1.1. в общем-то личный опыт говорит, что можно взять и прямо живую базу перелить rsync-ом, потом остановить мускул и тем-же rsync-ом еще раз пройти. В большинстве случаев повторный rsync проходит достаточно быстро и база получается совсем даже живая.

2. Не понял. Если запрос меняет базу, то запретив его на репликации ты получишь разные базы. В чем тогда смысл?
А если запрос базу не меняет (чистые селекты, пусть и тяжелые), то он по-любому не реплицируется.

Re: MySQL Master Master

Добавлено: 2011-12-18 2:10:43
coolman
Спасибо большое что откликнулись.
Насчет бэкапов у нас делаются консистентные снапшоты через netapp. По этому не велся бин лог, к сожалению у нас некоторые таблицы слишком большие и если я верно понимаю алгоритм работы rsync то если файл обновлен то он будет перекачен заново. а это давольно длительный срок изза того что у нас на серверах линк между собой 1gbit. Как я уже говорил база данных должна постоянно находится в работе ибо каждая минута простоя стоит не малых денег. :(
Поразмыслив мне в голову пришла идея а что если изменить конфиг mysql для организации бинлога, остановить его сделать снапшот(делается он почти моментально) запустить mysql. После чего в спокойном режиме поднять альтернативну машинку с снапшота и уже с нее слить dump. В итоге в тиорие я получу минутный down time и рабочий снапшот с базой данных до включения binloga.
Подскажите пожалуйста имеет ли моя идея право на жизнь ? Пробовали ли вы так делать ? Будет ли это работать ? В правильном направлении я иду ?

Насчет сложных запросов есть несколько таблиц из которых удаляются записи старше чем 7 дней при удалении записей (очень большое колличество параллельно выполнятся аудиторские запросы) делается это функционалом mysql (mysql function) таблица само собой inno db во избежание локов всей таблицы на врем аудита и удаления, но это очень сильно грузит сервер, вот и хотелось чтоб эту операцию проводить в разное время на двух серверах.
Но как я не искал не нашел возможности запрета репликации на определенный запрос к определенной таблице.
Может всеже есть варианты как это реализовать ?
Возможно плохо поискал и кто то это уже делал и направит по верному пути ?

Заранее спасибо за ответы, сорри если пишу то что уже обсуждалось.

Re: MySQL Master Master

Добавлено: 2011-12-18 9:17:37
FiL
по первому пункту всё верно. Включаешь бинлог (с рестартом сервера). Потом замечаешь позицию лога, останавливаешь сервер, делаешь снепшот, запускаешь сервер. Всё. Ты получил необходимые данные для репликации - снепшот и позицию в бинлоге на момент снепшота. Потом из снепшота поднимаешь базу на реплике и запускаешь репликацию. Всё просто и понятно.

а вот со вторым вопросом хуже. Что-бы не делал "тяжелый запрос" его все равно надо делать. И если его не передать на слейв, то данные в мастере и слейве будут различаться. А значит слейвом пользоваться вообще нельзя. Ибо на нем данные не те, что должны быть. Любая другая операция на мастере прошедшая до "тяжелого запроса" будет исходить из других данных, что неприемлемо.

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

Re: MySQL Master Master

Добавлено: 2011-12-18 21:54:03
coolman
Огромное спасибо!!
Это какраз то что мне надо !!!!
Шедулером рву репликацию на момент аудита как он заканчивается репликацю возвращаю! супер, как все запущу отпишу еще раз как все вышло!

Еше раз огромное спасибо за помощь !

Re: MySQL Master Master

Добавлено: 2011-12-19 5:05:23
FiL
ага. но именно так - прерывать репликацию вообще, а не элиминировать одну комманду из потока.
просто делаешь stop slave до того на слейве и start slave после.