Синхронизация базы данных онлайн / офлайн - MySQL / PHP - PullRequest
14 голосов
/ 11 октября 2011

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

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

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

Ответы [ 2 ]

12 голосов
/ 11 октября 2011

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

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

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

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

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

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