Как реплицировать большую базу данных MySQL (на сервере) в локальную базу данных SQLite (односторонняя синхронизация) - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть база данных MySQL на сервере Windows («Мастер»), который должен хранить десятки ГБ (со сжатием InnoDB), с новыми записями, добавляемыми ежедневно.

В целях ускорения я хотел бы реплицировать таблицы на удаленных компьютерах («ведомых»), работающих под управлением Windows или Linux, которые выполняют анализ данных (следовательно, нет проблем с параллелизмом локально). Я подумал об использовании базы данных SQLite для этой цели, которая будет содержать синхронизированный снимок мастера.

До сих пор я использовал Dropbox (для команд) для синхронизации файлов CSV, но дельта-синхронизация, вероятно, не будет работать с огромными файлами базы данных.

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

Пока что мне известны следующие возможности:

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Вы можете использовать Средство синхронизации данных SQLyog , с помощью которого вы можете указать допустимое условие SQL WHERE для таблицы, чтобы синхронизировать только те строки, которые удовлетворяют предложению WHERE.

0 голосов
/ 06 сентября 2011

Tap - Tap - Tap - Taps!

Ребята из Heroku написали симпатичный маленький скрипт на Ruby, чтобы помочь в этом сценарии.Я думаю, вы найдете его достаточно хорошо проверенным в бою и в целом просто отличным небольшим инструментом для синхронизации с базой данных.

https://github.com/ricardochimal/taps

http://adam.heroku.com/past/2009/2/11/taps_for_easy_database_transfers/

Остерегайтесь предостережений

С любыми хорошими магическими программами, которые есть предостережения, полезно быть откровенными:

**Known Issues**
  • Ограничения внешнего ключа теряются в схемепередача

  • Таблицы без первичных ключей будут невероятно медленными для передачи.Это связано с тем, что он неэффективен с большими значениями смещения в запросах.

  • Несколько схем в настоящее время не поддерживаются

Спасибо,

Anuj

...