Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток, помогите пожалуйста разобраться со следующим вопросом. Необходимо произвести синхронизацию данных двух или более бд в обе стороны (то есть, имеется Центральная БД и несколько локальных БД). Периодически информация будет меняться и на локальных бд и на центральной. Центральная БД общая, которая содержит все таблицы Локальных БД, а Локальные БД содержат лишь определенную часть таблиц Центральной БД.
Базы данных удалены друг от друга и объединены в локальную сеть, следующим образом: к Центральной БД подключены Локальные БД, но между Локальными БД связи нет.
Как я понял репликация работает только от мастера к реплике.
Есть ли возможность как то решить эту проблему?
Отредактированно danilov.michael (01.07.2011 14:44:01)
Неактивен
Хорошего автоматического механизма нету, к сожалению. Офисы отключаются
от интернета периодически, или есть постоянное подключение?
В первом случае можно, например, писать триггерами журнал изменений нужных
таблиц, а потом применять его кусками на центральной базе. Можно даже исполь-
зовать стандартные двоичные журналы вместо триггеров. Но — только написав
соответствующую программу.
В случае, если хочется передавать информацию как можно быстрее — ничего не
остается, кроме как ходить с изменениями в центральную базу.
Неактивен
А нельзя использовать мультимастерную репликацию? (http://mysql-mmm.org/)
Или организовать что то вроде Master (BSD1) + Slave (BSD2) и Master (BSD2) + Slave (BSD1)?
Отредактированно danilov.michael (04.07.2011 16:22:47)
Неактивен
Можно, но ребята в перконе — не тупые, одновременно писать Вы сможете
всё равно только в одну из баз (видимо, центральную).
Честный мастер-мастер сделать можно, но, как правило, с такой схемой не
могут работать клиентские приложения — их надо переписывать с нуля.
Организовать схему так, как Вы написали, можно, но что делать с другим
офисом при этом?
Слова BSD меня смущают. FAQ#14.
Неактивен
Спасибо, буду думать.
Неактивен
Не знаю могу ли я продолжить эту тему, напишу здесь.
Если использовать бинарный журнал обновлений, то удаление информации из таблицы не будет записано? Если да, то как его можно отследить?
И еще вопрос, для того чтобы передавать этот журнал необходимо написать свою программу, которая будет передавать журнал по сети на другой компьютер, а после того как передаст как запустить журнал на обновление данных?
И такой же вопрос по триггерам, как их после передачи применить на другом компьютере.
Отредактированно danilov.michael (12.07.2011 14:34:45)
Неактивен