Вопрос о репликации MySQL

в настоящее время у меня есть этот сценарий,

  1. несколько настольных клиентов с mysql db, установленными на их компьютере с Windows.
  2. необходимо синхронизировать с одним сервером, размещенным в Интернете, для целей отчетности.
  3. просто нужно сделать одностороннюю синхронизацию (клиент в Интернете).
  4. IP-адрес клиента всегда меняется, так как они используют стандартный adsl без фиксированного IP-адреса.
  5. каждый клиентский db будет синхронизироваться с одним автономным db на сервере (размещенным в Интернете).
  6. может ли эта синхронизация работать по планировщику? как каждые 3 часа с тех пор.

Я думаю об использовании репликации mysql, но у меня есть некоторые вопросы о том, как это настроить? Должен ли я настроить это как ведущий для ведомого? или мастер к мастеру? Я предполагаю, что клиент будет главным, а сервер будет подчиненным, поскольку сервер используется только для целей отчетности, но при проверке множества репликаций mysql кажется, что репликация исходная из подчиненного? (я вижу, что в настройке подчиненного сервера есть такие настройки, как master-host = ip), это противоречит цели, поскольку сервер не уверен в IP-адресе клиента ...


person Knight    schedule 21.03.2011    source источник


Ответы (1)


Возможно, это совершенно не соответствует действительности, учитывая некоторые из упомянутых вами элементов (ведомое устройство/мастер/и т. д.), но в приложении, которое я разрабатываю, у меня аналогичная архитектура с одним источником, питающим несколько клиентов с неизвестным/динамическим IP-адресом. Мое решение состояло в том, чтобы включить другое поле с отметкой времени, когда эта строка была в последний раз обновлена, а затем для синхронизации клиенты ищут в своей локальной базе данных MAX в этом столбце и отправляют это как переменную в веб-службу, которая затем возвращает все строки с более поздняя отметка времени. Затем клиент анализирует данные ответа и ЗАМЕНЯЕТ В свою локальную базу данных, так что старые данные перезаписываются.

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

person Robot Woods    schedule 21.03.2011