SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 24.06.2010 13:51:47

Boris
Участник
Зарегистрирован: 24.06.2010
Сообщений: 2

Георазделенная репликация

Доброго времени суток!

Есть пара вопросов по поводу репликации из одной страны в другую. Верны ли следующие утверждения?
1. master-master равносильно смерти из-за задержек.
2. mater-slave можно сделать, но при обращении к slave данные могут быть не самые последние.
3. В случае падения master, все запросы можно будет перенаправить на slave, а после подъема мастера - накатить на него дамп со слейва и продолжить работу.

А так же по поводу репликации на соседний сервер:
1. master-master возможны, но надо, чтобы запросы были без некоторых специальных "фич".
2. mater-slave - можно сделать. insert/update можно направлять на мастер, select - на slave.

Неактивен

 

#2 24.06.2010 15:00:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Георазделенная репликация

1. Нет. Но написать хорошее приложение, которое умеет работать
с master-master — достаточно тяжелая работа.

2. Верно.

3. Если у Вас есть master-master — да. Если master-slave — в случае, если
на slave тоже включен binlog (и выключен log_slave_updates — иначе поло-
жение будет очень тяжело искать для проигрывания). Ну или целиком пере-
ливать всю базу на мастер.



1. Для работы master-master все запросы должны быть коммутативными. Т.е.
каждый последующий запрос не может полагаться на предыдущие.

2. Верно.

Неактивен

 

#3 24.06.2010 15:18:41

Boris
Участник
Зарегистрирован: 24.06.2010
Сообщений: 2

Re: Георазделенная репликация

Спасибо за ответ!

paulus написал:

1. Нет. Но написать хорошее приложение, которое умеет работать
с master-master — достаточно тяжелая работа.

То есть, при наличии рук и желания реально сделать приложение географически разбитым? Апдейты и инсерты, скорее всего, достаточно частые. Что можете посоветовать почитать о том, какими запросы должны быть, а какими - нет?

Неактивен

 

#4 24.06.2010 15:24:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Георазделенная репликация

Про почитать — не скажу, к сожалению. Боюсь, что нужно в каждом запросе
применять голову sad

Единственная проблема, которая решается автоматически — это автоинкременты
(т.е. можно сделать один мастер нечетным, второй четным — и всё будет хорошо).
А так — на каждом изменяющем запросе думайте, что будет, если табличка
еще не изменилась. Скажем, INSERT INTO a SELECT FROM b — это запрос, который
точно всё убьет (потому что на том сервере в b уже написали, а тут еще нет, и
когда этот запрос приедет туда — он там побьет данные). Запрос вида DELETE
FROM a WHERE (тут условие не на PK) — убьет всё (т.к. там вставили, а вы сотрете).
И т.п. Везде надо применять голову sad

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson