mysql

Himiko
На сайте с 28.08.2008
Offline
560
3678

Приветствую.

Есть вопросик.

Есть сайт с базой данных, который собирает заказы. Так же менеджеры работают с базой (поиск заказов, упорядочивание, поиск дубрирующих и т.п.).

Есть 2 сервера под MySQL. Можно сделать что-то типа репликации.

Чтобы при падении, скажем, базы сайта, менеджеры работали нормально со своей базой данных.

Чтобы не было заморочек. Т.е. заказ пришёл, он синхронизировался с базой менеджеров. И так же в обратном порядке.

Ну и нужно, чтобы при падении mysql-сервера сайта, всё нормально работало у менеджеров с их базой. И после "подъёма" mysql от сайта, всё нормально синхронизировалось.

Посмотрел вот на такое дело -> http://zizop.habrahabr.ru/blog/87394/

Как лучше такое реализовать, есть идеи? Может кто-то с подобным сталкивался и знает оптимальный вариант...

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
hostmaster
На сайте с 26.05.2009
Offline
26
#1

оптимальный вариант как раз и описан в статье master-master, если сервера не очень далко друг от друга то всё будет как ты хочешь.

I'm lost without tcpdump
Himiko
На сайте с 28.08.2008
Offline
560
#2
hostmaster:
оптимальный вариант как раз и описан в статье master-master, если сервера не очень далко друг от друга то всё будет как ты хочешь.

Сервера в локалке.

Я вот точно не знаю, как себя поведёт mysql при вылете одного из мастеров. И восстановит ли нормально репликацию при его "подъёме".

Nikolai Sokolov
На сайте с 13.03.2008
Offline
65
#3

качество репликации будет зависеть от правильной работы управляющего сервера.

Вот тут хорошая статья по поводу кластера: http://www.opennet.ru/base/net/mysql_cluster_2.txt.html

В комментах рекомендуют не использовать mysql как кластер а использовать PostgreSQL или Oracle

Используя наши услуги, сервисы, оборудование и опыт работы в области информационных технологий (веб-хостинг) поможем в продвиженни вашего бизнеса www.servervk.eu (http://servervk.eu)
Himiko
На сайте с 28.08.2008
Offline
560
#4
Nikolai Sokolov:
качество репликации будет зависеть от правильной работы управляющего сервера.
Вот тут хорошая статья по поводу кластера: http://www.opennet.ru/base/net/mysql_cluster_2.txt.html
В комментах рекомендуют не использовать mysql как кластер а использовать PostgreSQL или Oracle

Такое не рассматривается. Есть работающие скрипты, переделывать не вариант.

Про какой управляющий сервер речь? Нужна репликация master <-> master.

Nikolai Sokolov
На сайте с 13.03.2008
Offline
65
#5

Как в вашем случае будет происходить переключение с одного master сервера на второй? Если один из серверов лежит.

Himiko
На сайте с 28.08.2008
Offline
560
#6
Nikolai Sokolov:
Как в вашем случае будет происходить переключение с одного master сервера на второй? Если один из серверов лежит.

Нет. Они будут оба мастерами.

Каждая часть (сайт и менеджеры) будут работать со своим mysql-сервером. Между ними будет репликация. Т.е. нужно:

1. Оба mysql-сервера master'ы. При добавлении данных на сайт данные реплицируются на mysql-сервер менеджеров. При изменении данных менеджерами, всё реплицируется на mysql-сервер сайта.

2. Если падает mysql-сервер сайта, то отваливается сайт. Менеджеры спокойно работают со своим mysql-сервером. Когда поднимается второй сервер, он автоматом должен всё поднимать и mysql-сервер менеджеров должен туда изменения реплицировать.

3. Если падает mysql-сервер менеджеров, то спокойно дальше работает сайт. Менеджеры пока отдыхают) Ну и так же по подъёму сервера, как в п1.

Nikolai Sokolov
На сайте с 13.03.2008
Offline
65
#7

если не важно, что сайт или менеджеры простаивают то такой вариант будет работать без проблем :)

Himiko
На сайте с 28.08.2008
Offline
560
#8
Nikolai Sokolov:
если не важно, что сайт или менеджеры простаивают то такой вариант будет работать без проблем :)

Вот как раз не важно) Главное, чтобы при падении чего-то одного, вторая часть работала.

Просто вот почитал темы, там как раз проблемы при поднятии одного из mysql-серверов. Написано, что вручную снова восстанавливать их связь. Такого бы не хотелось...

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#9

Лучше не мучаться с master-master (по опыту - он очень очень очень плохо работает и бывают запросы, которые нельзя использовать при master-master) и сделать master-slave, при выпадении slave ничего не делать, при выпадении master - делать прошлый slave новым masterом и потом чинить прошлый master.

Если нужно не только HA, но и высокая нагрузка, то можно через mysqlproxy апдейты/инсерты заворачивать на мастер, а селекты - на слейв (опционально - и часть на мастер, надо смотреть по нагрузке).

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
SBot
На сайте с 29.07.2008
Offline
150
#10

Вопрос, а сколько БД весит?

___

Если добавим масла в огонь >> (накрылась сетевуха, маршрутизатор/etc) Серв физически лег?

толк от master-master репликации тогда?

Как вариант, бекапить на второй серв каждые Х часов/дней не прерывая работу текщего мускуля.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий