Я разрабатываю веб-приложение, использующее php и mysql. это приложение работает в трех разных местах. 1. в Интернете. 2. головной офис. 3. филиал. Приложение выполняется на локальном сервере в головном офисе и филиале. интернет-соединение недоступно в любое время. клиенты размещают заказы через эти три местоположения. моя проблема в том, что я хочу синхронизировать данные между этими тремя базами данных и обновлять эти три базы данных. есть ли какой-либо путь к этому.
Я использую SymmetricDS для синхронизации баз данных. Он способен синхронизировать или реплицировать данные между узлами (серверами / базами данных), только нажимая или вытягивая данные, которые вы определяете. Это программное обеспечение, основанное на Java, оно имеет крутую кривую обучения, но это действительно делает работу.
SymmetricDS может быть настроен на то, чтобы переместить изменения с одного узла на два других узла, таким образом, чтобы все три узла содержали одни и те же данные. Вы должны убедиться, что первичными ключами являются уникальные ключи, а не автоматически увеличивающиеся значения, назначенные базой данных, так как это, скорее всего, будет проблемой в трех разных базах данных, которые вы хотите синхронизировать.
Программное обеспечение устанавливает триггеры в базе данных и фиксирует изменения при выполнении операций INSERT, UPDATE или DELETE (и других). Эти изменения данных затем вызывают на других узлах. Программное обеспечение необходимо запускать в каждом месте, но не нужно подключение к Интернету, которое доступно в любое время.
Вначале я волновался, что триггеры на всех моих таблицах замедлят производительность, но это не было проблемой вообще. Я не могу сказать, что мы обнаружили какие-либо проблемы с производительностью после того, как триггеры были установлены.
Посмотрите на http://symmetricds.org/ для более подробной информации.
Попробуйте инструменты сравнения схем и данных в dbForge Studio для MySQL .
У нас также есть автономные инструменты: