Я хочу скопировать содержимое базы данных MySQL в базу данных MS SQL Server 2008.
Это возможно? Кто-нибудь может наметить шаги, необходимые для достижения этой цели?
Спасибо.
Я хочу скопировать содержимое базы данных MySQL в базу данных MS SQL Server 2008.
Это возможно? Кто-нибудь может наметить шаги, необходимые для достижения этой цели?
Спасибо.
Ответы:
Лично я бы использовал метод MS SQL, а не метод MySQL. Почему? Хорошо, что Windows имеет 32-битные и 64-битные драйверы MySQL ODBC, готовые к работе, и настройка связанного сервера тривиальна. У меня есть много серверов MySQL, связанных с MS SQL. Кроме того, подключение к MS SQL из Linux / Unix не всегда хорошо, и вы обычно не можете использовать все функции. FreeTDS имеет ограничения; Вы можете ударить их раньше, чем позже, так почему бы просто не пропустить это. Все это предполагает, что вы используете MySQL на * nix. Если нет, то он становится немного ближе к 50/50, но я бы все же выбрал вытягивание из MS SQL, поскольку это звучит так, как будто это не «живая» база данных, поэтому нагрузка на нее для любого ETL или обработки более идеальна. Решение GoldenGate звучит интересно, но я уверен, что это не бесплатно.
Учитывая, что я настроил подобный сценарий с репликацией баз данных MySQL и Oracle на MS SQL, я приведу несколько советов, которые лучше всего сработали для меня:
Надеюсь, что советы помогут!
Тот же вопрос был адресован StackOverflow здесь: Репликация из MySQL в MSSQL .
Кажется, что есть некоторые обходные пути, но не очень простое решение.
Я считаю, что вам определенно следует попробовать создать пакет служб SSIS для импорта необходимых данных из базы данных MySQL в базу данных MSSQL. SSIS позволяет импортировать данные из разных источников. Тогда вы сможете планировать пакет, используя планировщик задач Windows или задания sql.
Если под репликацией вы подразумеваете доставку журналов или что-то в этом роде, я считаю, что вам не повезло. Однако вы, безусловно, можете настроить базу данных MySQL в качестве связанного сервера и развернуть собственную схему репликации. Проще всего делать периодические снимки всех таблиц, используя операторы усечения и вставки. Добавьте сложность в соответствии с вашими требованиями.
Вы можете использовать GoldenGate для MySQL и MS SQL, чтобы сделать это. Вы просто установили бы продукт GoldenGate с каждой стороны, а затем приступили к гомогенной репликации.
Кроме того, для репликации «моментального снимка» можно использовать сценарий Python (или аналогичный), чтобы просто подключиться к обоим источникам данных (используя UnixODBC и FreeTDS для подключения к MS SQL), выполнить цикл по таблицам, выполняемым SELECT
на одной стороне для каждой строки. INSERT
с другой. Так как MSSQL имеет транзакции и является вашей целью, вы можете запустить транзакцию, DELETE
все из всех таблиц, сделать копию, а затем, COMMIT
и это будет отображаться мгновенно, если речь идет о подключенных пользователях к цели, несоответствий не будет (если они не существуют). на источнике конечно).