Подтвердить что ты не робот

Синхронизация базы данных Online/Offline - MySQL/PHP

Я разрабатываю веб-приложение, использующее php и mysql. Это приложение работает в трех разных местах.

  1. В интернете
  2. Главный офис
  3. Филиал

Приложение выполняется на локальном сервере в головном офисе и филиале. Интернет-соединение недоступно в любое время. Клиенты размещают заказы через эти три местоположения. Моя проблема заключается в том, что я хочу синхронизировать данные между этими тремя базами данных и обновлять эти три базы данных. Есть какой-либо способ сделать это?

4b9b3361

Ответ 1

Я использую SymmetricDS для синхронизации баз данных. Он способен синхронизировать или реплицировать данные между узлами (серверами/базами данных), только нажимая или вытягивая данные, которые вы определяете. Это программное обеспечение на основе Java, оно имеет крутую кривую обучения, но на самом деле это делает работу.

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

Программное обеспечение устанавливает триггеры в базе данных и фиксирует изменения при выполнении операций INSERT, UPDATE или DELETE (и других). Эти изменения данных затем вызывают на других узлах. Программное обеспечение необходимо запускать в каждом месте, но не требуется подключение к Интернету, которое доступно в любое время.

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

Посмотрите http://symmetricds.org/ для более подробной информации.