MySQL Master Master
Модератор: f0s
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
MySQL Master Master
Я написал новую статью, кому это интересно? Милости прошу…
http://www.lissyara.su/?id=2095
Хочу выразить благодарности Литературному отделу, Донецкого национального академического Украинского музыкально-драматического театра!
Девушки спасибо! Если бы не вы, не было бы этой статьи!
http://www.lissyara.su/?id=2095
Хочу выразить благодарности Литературному отделу, Донецкого национального академического Украинского музыкально-драматического театра!
Девушки спасибо! Если бы не вы, не было бы этой статьи!
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- KIper
- рядовой
- Сообщения: 14
- Зарегистрирован: 2010-02-26 16:25:23
- Откуда: РФ,ВО, Вологда
- Контактная информация:
Re: MySQL Master Master
Спасибо за статью.
Вопрос в следующем, а есть возможность TLS/SSL соединения для репликации? Так что бы MySQL сам шифровал трафик при помощи сертификата и ключа.
Вопрос в следующем, а есть возможность TLS/SSL соединения для репликации? Так что бы MySQL сам шифровал трафик при помощи сертификата и ключа.
А у вас /dev/hends не примонтированы в /mnt/ass?
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
Пожалуста...KIper писал(а):Спасибо за статью.
Вопрос в следующем, а есть возможность TLS/SSL соединения для репликации? Так что бы MySQL сам шифровал трафик при помощи сертификата и ключа.
Шифрование? Не знаю не читал за шифрование, просто в моём случае при ккроссовере в нём нет необходимости, будет время посмотрю, чисто из-за спортивного интереса...
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master
Скажите, а Вы считали трафик который генерирует slave сервер допустим когда базы уже выровнены по содержимому?
Хочу попробывать совместно с rsunc сайт на bitrix так зеркалить, или если есть другие решения относительно bitrix ткните в ссылку.
Хочу попробывать совместно с rsunc сайт на bitrix так зеркалить, или если есть другие решения относительно bitrix ткните в ссылку.
Самое возмутительное в аргументах оппонента - это изобилие правды.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
Нет не щитал, но думаю будет прямо пропорционален sql запросам...Fioktist писал(а):Скажите, а Вы считали трафик который генерирует slave сервер допустим когда базы уже выровнены по содержимому?
Хочу попробывать совместно с rsunc сайт на bitrix так зеркалить, или если есть другие решения относительно bitrix ткните в ссылку.
C rcync я почти не работал но кажется он только в одну строну работает, Master Master может не получится, я не уверен...
Для чего Вам это? Хотите зазеркалить Веб-Сервера?
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master
Да, хочу веб сайт зеркалить,
rsunc только для переноса файлов веб сайта,
а репликация MySQL базы сайта по Вашей статье, по варианту master to slave .
rsunc только для переноса файлов веб сайта,
а репликация MySQL базы сайта по Вашей статье, по варианту master to slave .
Самое возмутительное в аргументах оппонента - это изобилие правды.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
Тогда, как вариант!Fioktist писал(а):Да, хочу веб сайт зеркалить,
rsunc только для переноса файлов веб сайта,
а репликация MySQL базы сайта по Вашей статье, по варианту master to slave .
На lissyara.su есть статья о rsync
http://www.lissyara.su/articles/freebsd ... mms/rsync/
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master
Спасибо, но вот если с rsunc понятно как он с файлами управляется то вот с MySQL пока непроверю жопа получается.
дело в том что живу в регионе где трафик еще считают и продают мегабайтами, шпд отсутствует так как инет спутниковый.
да и еще вот ремарочка, а почему Вы разместили топик не вот тут например Список форумов ‹ Программирование ‹ Базы Данных
дело в том что живу в регионе где трафик еще считают и продают мегабайтами, шпд отсутствует так как инет спутниковый.
да и еще вот ремарочка, а почему Вы разместили топик не вот тут например Список форумов ‹ Программирование ‹ Базы Данных
Самое возмутительное в аргументах оппонента - это изобилие правды.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
ПОтому, что это про сайт, здесь ветки обсуждения к статья из сайта...
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master
Статья вселяет надежду, что хоть после выравнивания баз, при добавлении новых данных на мастере трафик не будет
генерироваться больше установленного лимита.
Ещебы добавить к статье инфы для каких задач испольовать репликацию.
мне думаю поможет решить проблему доступа к корпоротивному сайту юзеров из инета, и неоплачивать их входящий трафик
по заоблачным ценам спутниковых провайдеров.
на основе статьи буду пробывать зеркалить копию базы сайта на firstvds.ru и пускай оно по крону синхранизируется,
база у сайта дополняется от силы 10 новыми записями в день, глядиш и сэкономится...
генерироваться больше установленного лимита.
Ещебы добавить к статье инфы для каких задач испольовать репликацию.
мне думаю поможет решить проблему доступа к корпоротивному сайту юзеров из инета, и неоплачивать их входящий трафик
по заоблачным ценам спутниковых провайдеров.
на основе статьи буду пробывать зеркалить копию базы сайта на firstvds.ru и пускай оно по крону синхранизируется,
база у сайта дополняется от силы 10 новыми записями в день, глядиш и сэкономится...
Самое возмутительное в аргументах оппонента - это изобилие правды.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
А что нет другой альтернативы с инетом?Fioktist писал(а):Статья вселяет надежду, что хоть после выравнивания баз, при добавлении новых данных на мастере трафик не будет
генерироваться больше установленного лимита.
Ещебы добавить к статье инфы для каких задач испольовать репликацию.
мне думаю поможет решить проблему доступа к корпоротивному сайту юзеров из инета, и неоплачивать их входящий трафик
по заоблачным ценам спутниковых провайдеров.
на основе статьи буду пробывать зеркалить копию базы сайта на firstvds.ru и пускай оно по крону синхранизируется,
база у сайта дополняется от силы 10 новыми записями в день, глядиш и сэкономится...
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master

а из двух вариантов синхрон или асинхрон предприятие выбирает синхрон, а он на порядок дороже
так что получается здесь самый дешевый нет -> это CD-DVDnet. ато что строит uralsvyazinform-severnyy-potok до нас врядли дотянется, у нас нефти нет.
Самое возмутительное в аргументах оппонента - это изобилие правды.
- fox
- ст. лейтенант
- Сообщения: 1154
- Зарегистрирован: 2008-07-24 0:25:31
- Откуда: Ukraine, Donetsk
Re: MySQL Master Master
Сочувствую! А Wi-FI неоткуда, что вообще телекоммуникаций некаких? Допустим в 100 км если есть оптика то скорей всего и инет дешовый есть, а от туда можно по радео протаколу доставить, есть куча провайдеров типа wimax протокола (новый wi-fi)... Есть ещё более новый протакол который в частотах 5 GHz работает... Что некакой альтернативы? Только спутник и всё?
Да пребудет с нами сила!!!
Всех убью, один останусь!
Всех убью, один останусь!
- Fioktist
- мл. сержант
- Сообщения: 84
- Зарегистрирован: 2007-04-06 4:06:28
- Откуда: Россия
Re: MySQL Master Master
1504 или 896 км до ближайшего ШПД в инет
но я смотрю мои сообщения уже просто перерасли во флэйм не относящийся к статье, так что если модеры потрут то не жалко.
но я смотрю мои сообщения уже просто перерасли во флэйм не относящийся к статье, так что если модеры потрут то не жалко.
Самое возмутительное в аргументах оппонента - это изобилие правды.
-
- проходил мимо
Re: MySQL Master Master
Как будет вести себя репликация мастер-мастер на нагруженой бд? при балансировки нагрузки? в случае если сам добавил одну запись на одном сервере и она реплицировалась на второй это одно, но когда в единицу времени добавляется запись на 1м сервере и на 2м сервере, как будет себя вести данная связка? на сколько я понимаю блокировки нету? (пробовали сделать так, отключить один сервер добавить в него запись, отключить второй сервер, в него добавить другую запись в туже таблицу и включить их для синхронизации).
-
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Re: MySQL Master Master
если на обоих серверах добавляется запись - это еще фигня. Ну встанут оба инсерта в очередь и в какой-то момент добавятся записи и там и тут. Может, правда, быть некая проблема с авто-инкрементными полями, но это таки мелочи (решается шагом инкремента и офсетом). Хуже с вариантом insert на одном сервере и delete на другом. И вот тут-то жопа приходит конкретная. Ибо на одном сначала пройдет инсерт, а потом делит (и удалит запись), а на другом сначала делит, а потом инсерт (и запись останется). И вот это уже совсем никуда не годится.
-
- проходил мимо
Re: MySQL Master Master
подскажите
как реализовать мастер <-> мастер <-> мастер
возможно ли такое в принципе?
как реализовать мастер <-> мастер <-> мастер
возможно ли такое в принципе?
- gekz
- мл. сержант
- Сообщения: 94
- Зарегистрирован: 2010-04-27 10:06:57
Re: MySQL Master Master
послежугость писал(а):подскажите
как реализовать мастер <-> мастер <-> мастер
возможно ли такое в принципе?
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-10-13 1:06:03
Re: MySQL Master Master
Привет всем!
Отличная статья единственное есть несколько вопросов.
1. Есть работающая база данных общий обьем около 50Гб, очень много обращений.
Планирую сделать репликацию для создания отказоустойчивости а также разделения нагрузки на одну базу (львиная часть запросов select)
Но дело в том что binlogi не велись как грамотно с минимальным down time сделать синхронизацию базы до момента когда начал писаться бинлог ?
Вариант с дампом всей базы и остановкой всех аппликаций крайне не желателен, так как дамп базы данных такого размера будет проходить долго что повлечет за собой большие финансовые потери.
2. есть ли возможность запрета конкретных операцию для конкретных таблиц базы данных для синхронизации ?
Как примеру я хочу чтоб тяжелые запросы аудита которые запускаются по журналу, запускались на разных серверах в разное время. т.е. запущенный тяжелый запрос определенный на определенной таблице, не должен быть передан slave. Есть такая возможность ?
Заранее благодарен всем за ваши ответы!
Отличная статья единственное есть несколько вопросов.
1. Есть работающая база данных общий обьем около 50Гб, очень много обращений.
Планирую сделать репликацию для создания отказоустойчивости а также разделения нагрузки на одну базу (львиная часть запросов select)
Но дело в том что binlogi не велись как грамотно с минимальным down time сделать синхронизацию базы до момента когда начал писаться бинлог ?
Вариант с дампом всей базы и остановкой всех аппликаций крайне не желателен, так как дамп базы данных такого размера будет проходить долго что повлечет за собой большие финансовые потери.
2. есть ли возможность запрета конкретных операцию для конкретных таблиц базы данных для синхронизации ?
Как примеру я хочу чтоб тяжелые запросы аудита которые запускаются по журналу, запускались на разных серверах в разное время. т.е. запущенный тяжелый запрос определенный на определенной таблице, не должен быть передан slave. Есть такая возможность ?
Заранее благодарен всем за ваши ответы!
-
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Re: MySQL Master Master
1. А бакапы базы вообще не делаются никогда? Ну тогда начните думать с бакапа. А потом можно будет просто взять последний бакап и с него начать.
1.1. в общем-то личный опыт говорит, что можно взять и прямо живую базу перелить rsync-ом, потом остановить мускул и тем-же rsync-ом еще раз пройти. В большинстве случаев повторный rsync проходит достаточно быстро и база получается совсем даже живая.
2. Не понял. Если запрос меняет базу, то запретив его на репликации ты получишь разные базы. В чем тогда смысл?
А если запрос базу не меняет (чистые селекты, пусть и тяжелые), то он по-любому не реплицируется.
1.1. в общем-то личный опыт говорит, что можно взять и прямо живую базу перелить rsync-ом, потом остановить мускул и тем-же rsync-ом еще раз пройти. В большинстве случаев повторный rsync проходит достаточно быстро и база получается совсем даже живая.
2. Не понял. Если запрос меняет базу, то запретив его на репликации ты получишь разные базы. В чем тогда смысл?
А если запрос базу не меняет (чистые селекты, пусть и тяжелые), то он по-любому не реплицируется.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-10-13 1:06:03
Re: MySQL Master Master
Спасибо большое что откликнулись.
Насчет бэкапов у нас делаются консистентные снапшоты через netapp. По этому не велся бин лог, к сожалению у нас некоторые таблицы слишком большие и если я верно понимаю алгоритм работы rsync то если файл обновлен то он будет перекачен заново. а это давольно длительный срок изза того что у нас на серверах линк между собой 1gbit. Как я уже говорил база данных должна постоянно находится в работе ибо каждая минута простоя стоит не малых денег.
Поразмыслив мне в голову пришла идея а что если изменить конфиг mysql для организации бинлога, остановить его сделать снапшот(делается он почти моментально) запустить mysql. После чего в спокойном режиме поднять альтернативну машинку с снапшота и уже с нее слить dump. В итоге в тиорие я получу минутный down time и рабочий снапшот с базой данных до включения binloga.
Подскажите пожалуйста имеет ли моя идея право на жизнь ? Пробовали ли вы так делать ? Будет ли это работать ? В правильном направлении я иду ?
Насчет сложных запросов есть несколько таблиц из которых удаляются записи старше чем 7 дней при удалении записей (очень большое колличество параллельно выполнятся аудиторские запросы) делается это функционалом mysql (mysql function) таблица само собой inno db во избежание локов всей таблицы на врем аудита и удаления, но это очень сильно грузит сервер, вот и хотелось чтоб эту операцию проводить в разное время на двух серверах.
Но как я не искал не нашел возможности запрета репликации на определенный запрос к определенной таблице.
Может всеже есть варианты как это реализовать ?
Возможно плохо поискал и кто то это уже делал и направит по верному пути ?
Заранее спасибо за ответы, сорри если пишу то что уже обсуждалось.
Насчет бэкапов у нас делаются консистентные снапшоты через netapp. По этому не велся бин лог, к сожалению у нас некоторые таблицы слишком большие и если я верно понимаю алгоритм работы rsync то если файл обновлен то он будет перекачен заново. а это давольно длительный срок изза того что у нас на серверах линк между собой 1gbit. Как я уже говорил база данных должна постоянно находится в работе ибо каждая минута простоя стоит не малых денег.

Поразмыслив мне в голову пришла идея а что если изменить конфиг mysql для организации бинлога, остановить его сделать снапшот(делается он почти моментально) запустить mysql. После чего в спокойном режиме поднять альтернативну машинку с снапшота и уже с нее слить dump. В итоге в тиорие я получу минутный down time и рабочий снапшот с базой данных до включения binloga.
Подскажите пожалуйста имеет ли моя идея право на жизнь ? Пробовали ли вы так делать ? Будет ли это работать ? В правильном направлении я иду ?
Насчет сложных запросов есть несколько таблиц из которых удаляются записи старше чем 7 дней при удалении записей (очень большое колличество параллельно выполнятся аудиторские запросы) делается это функционалом mysql (mysql function) таблица само собой inno db во избежание локов всей таблицы на врем аудита и удаления, но это очень сильно грузит сервер, вот и хотелось чтоб эту операцию проводить в разное время на двух серверах.
Но как я не искал не нашел возможности запрета репликации на определенный запрос к определенной таблице.
Может всеже есть варианты как это реализовать ?
Возможно плохо поискал и кто то это уже делал и направит по верному пути ?
Заранее спасибо за ответы, сорри если пишу то что уже обсуждалось.
-
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Re: MySQL Master Master
по первому пункту всё верно. Включаешь бинлог (с рестартом сервера). Потом замечаешь позицию лога, останавливаешь сервер, делаешь снепшот, запускаешь сервер. Всё. Ты получил необходимые данные для репликации - снепшот и позицию в бинлоге на момент снепшота. Потом из снепшота поднимаешь базу на реплике и запускаешь репликацию. Всё просто и понятно.
а вот со вторым вопросом хуже. Что-бы не делал "тяжелый запрос" его все равно надо делать. И если его не передать на слейв, то данные в мастере и слейве будут различаться. А значит слейвом пользоваться вообще нельзя. Ибо на нем данные не те, что должны быть. Любая другая операция на мастере прошедшая до "тяжелого запроса" будет исходить из других данных, что неприемлемо.
Что можно сделать - остановить репликацию, выполнить тяжелый запрос (высокая нагрузка на мастере), когда запрос закончится (и закрузка спадет), включить репликацию. На слейв придет тот самый запрос, но по времени он придет позже и нагрузка будет растянута по времени.
а вот со вторым вопросом хуже. Что-бы не делал "тяжелый запрос" его все равно надо делать. И если его не передать на слейв, то данные в мастере и слейве будут различаться. А значит слейвом пользоваться вообще нельзя. Ибо на нем данные не те, что должны быть. Любая другая операция на мастере прошедшая до "тяжелого запроса" будет исходить из других данных, что неприемлемо.
Что можно сделать - остановить репликацию, выполнить тяжелый запрос (высокая нагрузка на мастере), когда запрос закончится (и закрузка спадет), включить репликацию. На слейв придет тот самый запрос, но по времени он придет позже и нагрузка будет растянута по времени.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2010-10-13 1:06:03
Re: MySQL Master Master
Огромное спасибо!!
Это какраз то что мне надо !!!!
Шедулером рву репликацию на момент аудита как он заканчивается репликацю возвращаю! супер, как все запущу отпишу еще раз как все вышло!
Еше раз огромное спасибо за помощь !
Это какраз то что мне надо !!!!
Шедулером рву репликацию на момент аудита как он заканчивается репликацю возвращаю! супер, как все запущу отпишу еще раз как все вышло!
Еше раз огромное спасибо за помощь !
-
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Re: MySQL Master Master
ага. но именно так - прерывать репликацию вообще, а не элиминировать одну комманду из потока.
просто делаешь stop slave до того на слейве и start slave после.
просто делаешь stop slave до того на слейве и start slave после.