SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.05.2008 11:41:28

ps
Участник
Зарегистрирован: 13.04.2008
Сообщений: 7

Работа с синхринизированными (-ующимися) серверами

Задача:
Есть несколько (для начала 2 smile  серверов с базой данных MySQL. Сервера расположены в разных городах. На них должна крутится одна база данных.  Во всех городах могут добавлять/изменять записи. Необходимо, чтобы базы были в максимально синхронном состоянии при минимизации внешнего трафика. Особ вопрос с ключевыми (SERIAL) полями при создании новых записей в разных городах между синхронизациями баз.
В идеале сервера должны автоматом рассылать изменения другим серверам, при этом не нарушая уникальность ключей, возможно, в пакетном режиме (1,2,3... раз за день). Также должен быть просчитан случай с отвалом каких-либо (всех) серверов (типа пропал внешний инет).  При этом локальная работа с базой должна продолжаться, а после подъема канала базы должны засинхронизироваться.

Если кто сталкивался с такими задачами, подскажите plz с каких руководств начинать и поделитесь опытом. Буду _очень_ признателен (впрочем, я думаю, это будет многим интересно). А может есть хаутушка?  smile

Подозреваю, что про многие ньюансы я не упомянул. Но по простой причине, что еще не столкнулся с ними sad

Неактивен

 

#2 08.05.2008 10:23:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Работа с синхринизированными (-ующимися) серверами

Насчет ключей - поможет auto_increment_offset, auto_increment_increment
Устанавливаете auto_increment_increment = 2,
на первом сервере auto_increment_offset = 0
на втором сервере auto_increment_offset = 1

На первом сервере будут четные номера создаваться, на втором - нечетные. Далее настраиваете круговую репликацию (то есть репликацию 1 => 2 и репликацию 2 => 1). На этом простая часть заканчивается. Далее надо убедиться, что все запросы приложения не разрушают репликацию, все новые записи вставляются только с auto_increment ключом и написать собственную логику поведения приложения при отказе сервера и логигу восстановления после сбоя.

Неактивен

 

Board footer

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