Возможный дубликат:
Это лучший способ двунаправленной синхронизации динамических данных в реальном времени с использованием mysql
Мне нужен совет:
Как сохранить 2 базы данных mySQL (ту же структуру), синхронизированную в двух местах?
Что я делаю:
Я создаю приложение для бизнеса с двумя местоположениями. Они должны делиться / обновлять информацию в базе данных, но владелец хочет, чтобы она была внутренней, а не внешней, поскольку он беспокоится о возможности запуска в случае сбоя в сети.
Моя стратегия пока:
Я настроил два сервера (по одному в каждом месте). Каждый из них запускал локальный Apache + MySQL. Webapp НЕ доступен через Интернет, только локально. MySQL доступен через SSL через Интернет (со сложным паролем).
Локальный webapp запускается и взаимодействует с локальным mySQL для чтения. Для записи он записывает локально затем на удаленный сервер (записывая 2x).
Я беспокоюсь о создании дубликатов / поврежденных записей, когда идентификаторы записей могут быть дублированы / различны и т. Д. Вот почему я не полагаюсь на идентификатор записи, а на отдельный уникальный номер, который я контролирую (не автоматически увеличивая) ,
Итог … Это лучшее, что я смог придумать после проведения обширных исследований. Я прав? Или может кто-нибудь предложить совет?
Это называется репликацией , а MySQL (как и любая зрелая система управления базами данных) имеет встроенную поддержку. См. http://dev.mysql.com/doc/refman/5.0/ru/replication.html.
Вы можете искать распределенные транзакции. MySQL предлагает поддержку транзакций XA (дополнительную информацию см. В их документации ).