синхронизация баз данных

  • Автор темы Автор темы Semen
  • Дата начала Дата начала

Semen

Семён
синхронизация баз данных

Добрый день всем!

Никогда раньше не делал подобного, есть сомнения...
Собственно задача:
Есть программа для соревнований, которая регистрирует время участников и выводит результаты, всё это длится 24 часа.
В качестве базы используется MySql. Необходимо сделать трансляцию результатов на сайт в реальном времени, т.е. синхронизировать базы.
Мои мысли такие:
все изменения в базе записываются в файл;
с определённым интервалом читается файл и делаются изменения на сайте.

Буду благодарен за советы.
 
Я делал так:

FEDERATED Storage Engine + INSERT ... SELECT

Код синхронизации поместил в хранимые процедуры.
Чтение из федеративных таблиц, запись в InnoDB.
Федеративные таблицы создавал как TEMPORARY.
Чтобы забирать только отсутствующие данные, использовал поле `update_datetime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP.
Запуск скрипта 1 раз в 30 мин.
 
Спасибо за советы, почитал, буду пытаться делать с репликацией.
Как сделаю отпишу.
 
В моём случае репликация не подошла, с сервера [A] на сервер перетекает лишь часть данных, в т.ч. агрегированных.
 
[offtop]Как казино позакрывали, так такие задачи у народа стали появляться всё чаще..[/offtop]
 
Semen
на сервере-источнике информации сделай веб-сервис
на 2м сервере скиптом запрашивай 1й сервер периодически, с запросом отправляй ID последнего события,
в ответ сервер-источник будет выдавать список более поздних событий
сервер-приемник будет принимать список, парсить и обновлять свою базу
 
grigori
Изначально я планировал сделать так же, но схема "FEDERATED Storage Engine + INSERT ... SELECT" проще, быстрее и надёжнее, т.к. две БД связываются друг с другом напрямую.
 
Сверху