Стратегия синхронизации базы данных из нескольких мест в центральную базу данных и наоборот - PullRequest
16 голосов
/ 26 января 2011

У меня есть несколько баз данных, расположенных в разных местах, и центральная база данных, которая находится в центре обработки данных. У всех одинаковая схема. Все они изменены (вставить / обновить / удалить) в каждом месте с различными данными, включая центральную базу данных.

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

Есть идеи, как это сделать?

Ответы [ 4 ]

7 голосов
/ 30 октября 2011

Просто посмотрите на SymmetricDS .Это программное обеспечение для репликации данных, которое поддерживает несколько абонентов и двунаправленную синхронизацию.

3 голосов
/ 26 января 2011

Вам потребуется реализовать схему двусторонней репликации между базами данных. Каждая новая созданная запись должна иметь уникальный идентификатор (например, GUID), чтобы данные из разных баз данных не конфликтовали. (См. инструкция по репликации mysql ).

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

2 голосов
/ 12 декабря 2012

Я пошел в SymmetricDS

Я думаю, что это высочайшее качество, просто упомянуть, что я нашел в sourceforge (php mysql sync)

и нашел много ссылок в Интернете.

0 голосов
/ 26 января 2011

К сожалению, возможности репликации MySQL не позволят вам делать именно то, что вы хотите.

Обычно для синхронизации двух серверов можно использовать схему репликации мастер-мастер.См. http://www.howtoforge.com/mysql_master_master_replication

Проблема заключается в том, что каждый сервер MySQL может иметь ТОЛЬКО ОДИН мастер.

Единственный способ, которым я знаю, чтобы синхронизировать несколько серверов, - это циклическая репликация (см. http://onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html?page=2), но не совсем соответствует вашим потребностям («звездная» конфигурация)

Возможно, эта конфигурация может быть достаточно близкой: все «удаленные» (не центральные) базы данных будут только читаемыми ведомыми (хотя и синхронизируются)базовая репликация главный-подчиненный), и записи будут происходить только на центральном сервере (который будет главным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...