Как мне синхронизировать 2 чистые базы данных - PullRequest
1 голос
/ 13 ноября 2008

Мой вопрос очень похож на этот . Однако я нахожусь на MySQL, и я ищу "самое низкое техническое" решение, которое я могу найти.

Ситуация такова, что у меня есть 2 базы данных, в которых должны быть одинаковые данные, но они обновляются, главным образом, когда они не могут связаться друг с другом. Я подозреваю, что есть какая-то кластеризация или ведущая / ведомая вещь, которая могла бы синхронизировать их просто отлично. Однако в моих случаях это слишком излишне, поскольку это всего лишь пустая база данных для моего собственного использования.

Какой хороший способ сделать это?

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

p.s. Я могу легко построить запрос, который выбирает строки для передачи.

Ответы [ 2 ]

5 голосов
/ 13 ноября 2008

Встроенная репликация MySQL очень проста в настройке и хорошо работает, даже когда БД отключены большую часть времени. Я бы сказал, что это гораздо проще, чем любое другое решение.

См. Инструкции http://www.howtoforge.com/mysql_database_replication, вы должны начать работу через 10-15 минут, и вам больше не придется об этом думать.

Единственный недостаток, который я вижу, это то, что он асинхронный, т.е. у вас должен быть один назначенный мастер, который получает все изменения.

0 голосов
/ 14 ноября 2008

Мое текущее решение -

  • настроить федеративную таблицу в окне источника, которая захватывает таблицу в целевом окне
  • настроить представление в окне источника, которое выбирает строки для обновления (как объединение федеративной таблицы)
  • установить другую федеративную таблицу в целевом окне, которая захватывает представление в исходном окне
  • выдать INSERT...SELECT...ON DUPLICATE UPDATE на поле назначения, чтобы запустить тягу.

Полагаю, я мог бы просто взять исходную таблицу и сделать все за один раз, но на основании журналов запросов, которые я видел, я предполагаю, что в итоге я получу около 20K запросов или около 100-300 МБ передачи данных в зависимости от того, как все происходит. В результате проданной выше установки было получено около 4 запросов, и было передано немного больше данных, чем необходимо.

...