Синхронизация баз данных Mysql между двумя базами данных


мы запускаем приложение java POS на различных магазинах с серверной частью как Mysql, теперь я хочу, чтобы база данных в магазине синхронизировалась с базой данных на сервере, и когда некоторые изменения происходят в магазине, он должен обновляться на сервере. Как мне этого добиться ? Пожалуйста, помогите мне

4 72

4 ответа:

репликация не очень трудно создать.

вот некоторые хорошие учебники:

http://aciddrop.com/2008/01/10/step-by-step-how-to-setup-mysql-database-replication/

http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/

http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication

вот несколько простых правил, которые вам придется иметь в виду (там больше, конечно, но это основная концепция):

  1. настройка 1 сервера (master) для записи данных.
  2. настройка 1 или более серверов (ведомых устройств) для чтения данных.

таким образом, вы избежите ошибок.

например: Если ваш скрипт вставляется в одни и те же таблицы как на ведущем, так и на ведомом устройстве, у вас будет повторяющийся конфликт первичных ключей.

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

Примечание: конечно, вы можете читать от мастера, и вы можете писать в раб, но убедитесь, что вы не пишете в те же таблицы (master to slave и slave to master).

Я бы рекомендовал следить за вашими серверами, чтобы убедиться, что все в порядке.

Дайте мне знать, если вам нужна дополнительная помощь

три различных подхода:

  1. классический подход клиент / сервер: не ставьте никаких баз данных в магазинах; просто есть приложения доступ к серверу. Конечно, лучше, если вы установите VPN, но просто обернуть соединение в SSL или ssh разумно. Pro: это то, как изначально считались базы данных. Con: если у вас высокая задержка, сложные операции могут замедляться, возможно, вам придется использовать хранимые процедуры, чтобы уменьшить количество раундов поездки.

  2. реплицированный мастер/мастер: как предложил @Book of Zeus. Минусы: несколько сложнее настроить (особенно если у вас есть несколько магазинов), взлом в любом магазине машины может потенциально поставить под угрозу всю систему. Плюсы: лучшая отзывчивость, поскольку операции чтения полностью локальны, а операции записи распространяются асинхронно.

  3. автономные операции + шаг синхронизации: все работают локально и время от времени (может раз в час, ежедневно, еженедельно, что угодно) напишите резюме со всеми новыми / измененными записями из последней операции синхронизации и отправьте на сервер. Плюсы: может работать без сети, быстро, легко проверить (если резюме читабельно). Минусы: у вас нет информации в режиме реального времени.

SymmetricDS ответ. Он поддерживает несколько абонентов с одним направлением или двунаправленной асинхронной репликацией данных. Он использует веб-технологии и Технологии баз данных для репликации таблиц между реляционными базами данных, в режиме реального времени, если это необходимо.

комплексный и надежный Java API в соответствии с вашими потребностями.

посмотреть инструменты сравнения схем и данных в dbForge Studio for MySQL. Эти инструменты помогут вам сравнить, увидеть различия, создать сценарий синхронизации и синхронизировать две базы данных.