Предложения по репликации данных из MS Sql 2005 и MySql - PullRequest
2 голосов
/ 04 октября 2008

У моей компании в настоящее время есть транзакционная база данных, работающая на Sql Server 2005. Мы собираемся добавить базу данных MySql (работающую на Linux). Нам нужно запустить репликацию с базы данных MS-Sql на базу данных MySql. Это не должно быть в режиме реального времени, но должно быть в течение нескольких минут.

У меня довольно хорошие навыки MSSql Dev и так себе dba, но я не имею опыта работы с MySql. У парня MySql в нашей команде нет опыта MSSql.

Мне было интересно, если кто-нибудь настроил что-то подобное и может иметь некоторые предложения. Я видел кое-что о переносе данных между ними, но не так много для текущей репликации. Прямо сейчас мое лучшее предположение - настроить что-то в SSIS и запустить его под Sql Agent. Сейчас я собираюсь проработать идею SSIS, но приветствую любые предложения.

Ответы [ 4 ]

4 голосов
/ 10 октября 2008

Мой друг почти для того же случая (он копирует некоторые данные из нескольких таблиц из MSSQL в MySQL) построил что-то вроде этого:

  • Добавлен триггер для каждой таблицы, которая будет реплицироваться. Запустить первичный ключ сохранения, тип операции (i) nsert / (u) pdate / (d) elete и имя исходной таблицы в специальной таблице (меньше или больше).
  • Небольшое приложение .NET сканирует эти специальные таблицы на предмет новых ключей каждые несколько минут и считывает данные из исходных таблиц MSSQL и сохраняет их в таблицах назначения в MySQL (меньше или больше).

Это прекрасно работает, потому что:

  • Таблицы мало меняются.
  • Он копирует всего несколько столбцов.

Плюсы:

  • Быстро и легко внедрить и изменить.

Минусы:

  • В домашних условиях инструмент не идеален:).
2 голосов
/ 10 октября 2008

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

0 голосов
/ 27 октября 2009

SSIS ETL кажется самым простым способом. Вы могли бы на самом деле экспортировать в промежуточную область (файлы CSV), а затем импортировать в MySQL. Это позаботится о проблемах с различным форматом. Если вы проявите творческий подход, MySQL поддерживает механизм хранения CSV ( см. Здесь ), так что это может сохранить шаг загрузки в SSIS.

0 голосов
/ 04 октября 2008

Стороннее приложение заявляет о возможности сделать это: Daffodil Replicator. Я думаю, что он доступен как с открытым исходным кодом, так и с корпоративной версией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...