Синхронизация баз данных Mysql между двумя базами данных
мы запускаем приложение java POS на различных магазинах с серверной частью как Mysql, теперь я хочу, чтобы база данных в магазине синхронизировалась с базой данных на сервере, и когда некоторые изменения происходят в магазине, он должен обновляться на сервере. Как мне этого добиться ? Пожалуйста, помогите мне
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 сервера (master) для записи данных.
- настройка 1 или более серверов (ведомых устройств) для чтения данных.
таким образом, вы избежите ошибок.
например: Если ваш скрипт вставляется в одни и те же таблицы как на ведущем, так и на ведомом устройстве, у вас будет повторяющийся конфликт первичных ключей.
вы можете просмотреть "ведомый " как" резервный " сервер, который держит та же информация, что и мастер, но не может добавлять данные напрямую, только следуйте инструкциям главного сервера.
Примечание: конечно, вы можете читать от мастера, и вы можете писать в раб, но убедитесь, что вы не пишете в те же таблицы (master to slave и slave to master).
Я бы рекомендовал следить за вашими серверами, чтобы убедиться, что все в порядке.
Дайте мне знать, если вам нужна дополнительная помощь
три различных подхода:
классический подход клиент / сервер: не ставьте никаких баз данных в магазинах; просто есть приложения доступ к серверу. Конечно, лучше, если вы установите VPN, но просто обернуть соединение в SSL или ssh разумно. Pro: это то, как изначально считались базы данных. Con: если у вас высокая задержка, сложные операции могут замедляться, возможно, вам придется использовать хранимые процедуры, чтобы уменьшить количество раундов поездки.
реплицированный мастер/мастер: как предложил @Book of Zeus. Минусы: несколько сложнее настроить (особенно если у вас есть несколько магазинов), взлом в любом магазине машины может потенциально поставить под угрозу всю систему. Плюсы: лучшая отзывчивость, поскольку операции чтения полностью локальны, а операции записи распространяются асинхронно.
автономные операции + шаг синхронизации: все работают локально и время от времени (может раз в час, ежедневно, еженедельно, что угодно) напишите резюме со всеми новыми / измененными записями из последней операции синхронизации и отправьте на сервер. Плюсы: может работать без сети, быстро, легко проверить (если резюме читабельно). Минусы: у вас нет информации в режиме реального времени.
SymmetricDS ответ. Он поддерживает несколько абонентов с одним направлением или двунаправленной асинхронной репликацией данных. Он использует веб-технологии и Технологии баз данных для репликации таблиц между реляционными базами данных, в режиме реального времени, если это необходимо.
комплексный и надежный Java API в соответствии с вашими потребностями.
посмотреть инструменты сравнения схем и данных в dbForge Studio for MySQL. Эти инструменты помогут вам сравнить, увидеть различия, создать сценарий синхронизации и синхронизировать две базы данных.