Необходимо перенести SQL Server на MySQL


22

У меня есть база данных на SQL Server 2008 на сервере Windows, и я хочу переместить все данные в базу данных MySQL на сервере Ubuntu. Я попытался использовать мастер импорта и экспорта SQL Server с драйвером MySQL ODBC, и он правильно обращается к обеим базам данных, но xml-файлы, содержащие спецификации для преобразования типов, не существовали, и спецификации были слишком ограничены, чтобы я мог их правильно создать. Кто-нибудь знает, как создавать файлы преобразования типов или где найти лучший инструмент для передачи этих данных?


1
Вы видели этот вопрос? Речь идет о репликации данных из MySql в MSSQL. Может быть, вы найдете там несколько подсказок.
Мариан

@Marian Спасибо за ссылку. Использование сервера MySQL в качестве связанного сервера в SQL Server кажется решением моей проблемы.
murgatroid99

1
О каком количестве данных мы говорим? 5mb? 3TB?
AaronJAnderson

Я думаю, что это были ГБ или 10 ГБ, но я не помню, потому что этот вопрос был полтора года назад.
murgatroid99

Ответы:


13

У меня есть два предложения:

1) Я ненавижу выпускать коммерческие продукты, но есть инструменты стоимостью $ 49,00 для переноса MSSQL на MySQL

2) Попробуйте MySQL MSSQL Migration форумы для дальнейших предложений

ОБНОВЛЕНИЕ 2011-06-03 18:03 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Существует старый продукт, получивший EOL еще в январе 2010 года, который называется MySQL Migration Toolkit . Если вы можете получить это, вы можете использовать его.

ОБНОВЛЕНИЕ 2011-06-03 18:06 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Я нашел архивы !!! Вот MySQL Migration Toolkit

ОБНОВЛЕНИЕ 2011-06-03 18:11 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Вот обзор MySQL Migration Toolkit

ОБНОВЛЕНИЕ 2011-06-03 19:08 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Еще один коммерческий продукт ($ 29)

ОБНОВЛЕНИЕ 2011-06-03 19:30 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Вот список бесплатных инструментов, которые переносят MSSQL в MySQL.

ОБНОВЛЕНИЕ 2011-06-15 17:47 EDT

Получите WhitePaper (PDF) от Oracle в Руководстве по миграции Microsoft SQL Server на MySQL (все еще в продаже)

ОБНОВЛЕНИЕ 2012-08-21 01:24 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Согласно этой веб-странице MySQL , в разделе MySQL Workbench: Database Migration Wizardутверждается, что MySQL Workbench имеет возможность переноса объектов БД с SQL Server на MySQL.


1
Я бы предпочел не использовать какие-либо коммерческие продукты, если я могу избежать их. Я пытался использовать Migration Toolkit, но я думаю, что он несовместим с новейшей версией MySQL: сгенерированные операторы вставки SQL имели огромное количество синтаксических ошибок, а сгенерированные таблицы не имели строк после запуска мастера. Условно-бесплатные инструменты также, похоже, предназначены для работы со старыми версиями MySQL. Спасибо за попытку.
murgatroid99

4

Основываясь на предложении Мариана, я нашел ответ о репликации в другом направлении, настроив сервер MySQL в качестве связанного сервера в MS SQL Server. С MySQL, настроенным как связанный сервер, я могу одновременно выполнять SQL-запросы к обеим базам данных, что обеспечивает именно ту функциональность, которая была мне необходима для решения этой проблемы.


3

Вы рассматривали использование SSIS для этой задачи? Это инструмент ETL для SQL Server, и он имеет множество преобразований и логики, которые могут помочь вам выполнить эту задачу.


Мастер импорта / экспорта, о котором я упоминал, на самом деле создает пакеты служб SSIS. Проблема, с которой я столкнулся, заключалась в том, что SSIS использует файлы XML для хранения данных о том, как преобразовывать типы в разные системы управления базами данных, а эти файлы не существовали для MySQL.
murgatroid99

3

MySQL Workbench может сделать это:

http://dev.mysql.com/downloads/workbench

Его можно установить непосредственно на компьютер с MS SQL Server (преимущество в скорости!), Которое должно иметь доступ к вашему Ubuntu MySQL Server.


2

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

введите описание изображения здесь


SQLyog - отличный инструмент, но функция импорта внешних данных работает крайне медленно. Как на несколько порядков медленнее, чем MySQL Workbench. Я бы хотел, чтобы разработчики SQLyog решили эту проблему, потому что интерфейс намного более интуитивен, чем Workbench. Но если вы импортируете только сотни строк, будьте готовы подождать часы или, возможно, дни, чтобы импорт завершился.
nextgentech

2

Я недавно выпустил etlalchemy для выполнения этой задачи. Это решение с открытым исходным кодом, которое позволяет выполнять миграцию между любыми 2 базами данных SQL с 4 строками Python . Поддерживаемые СУБД включают MySQL, PostgreSQL, Oracle, SQLite и SQL Server.

Это позаботится о сложной задаче сопоставления типов столбцов одного поставщика SQL с типами столбцов другого. Он не только будет передавать и переводить схемы , но также будет переносить все данные, индексы и ограничения по базам данных.

Установить:

$ pip install etlalchemy

На Эль Капитане :pip install --ignore-installed etlalchemy

Бежать:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

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


0

MySQL Workbench Migration Tool может помочь вам в решении этой задачи.

1) Чтобы начать процесс миграции, на главном экране MySQL Workbench перейдите в Database-> Migration Wizard.

2) Мы должны проверить предварительные условия, чтобы подтвердить, можем ли мы продолжить задачу. Если все выглядит хорошо, мы можем нажать на Start Migration.

3) На этом этапе нам необходимо предоставить информацию об исходной базе данных, в данном случае SQL Server.

Мы настроим наш параметр источника:

Система баз данных: Microsoft SQL Server

Способ подключения: ODBC (собственный)

Драйвер: SQL Server

Сервер: localhost

Имя пользователя: sa

4) Теперь мы можем проверить соединение с помощью кнопки «Проверить соединение».

5) Затем нам нужно добавить целевые параметры:

Способ подключения: стандартный (TCP / IP)

Имя хоста: Ваше_хост_имя

Порт: 3306

Имя пользователя: миграция

6) И нажмите на Test Connection, чтобы подтвердить добавленную информацию.

7) На следующем шаге MySQL Workbench подключится к нашему SQL Server, чтобы получить список каталогов и схем.

8) Теперь мы выберем базу данных Your_database_name из списка.

Мы можем выбрать, как должны быть отображены обратные инженерные схемы и объекты. Мы будем использовать опцию Catalog.Schema.Table -> Catalog.Table, поэтому в нашем MySQL мы выберем базу данных и текущие таблицы, которые есть в нашей базе данных SQL Server.

9) Если все прошло хорошо, у нас будет список объектов для переноса.

10) В этом случае у нас есть Объекты Таблицы, Объекты Представления и Обычные Объекты. Мы будем выбирать только объекты таблиц, потому что для остальной части объекта мы должны вручную проверить соответствующий эквивалентный код MySQL.

11) На этом этапе объекты из источника преобразуются в MySQL-совместимые объекты.

12) Если все прошло хорошо, мы можем продолжить, выбрав способ создания перенесенной схемы в целевом объекте. Мы будем использовать стандартную опцию «Создать схему в целевой СУБД».

13) Теперь давайте проверим процесс создания схемы.

14) На следующем шаге мы можем проверить результат каждого выполнения скрипта и проверить новую базу данных, созданную на нашем MySQL сервере.

15) На данный момент у нас будет структура базы данных, но у нас пока нет данных. Теперь мы выберем, как мы хотим скопировать данные на MySQL Server. Мы будем использовать опцию «Онлайн-копирование табличных данных для целевой РСУБД».

16) На последнем шаге мы можем проверить отчет о миграции и завершить задачу.

Еще один простой способ преобразования базы данных MS SQL в MySQL - использование инструмента Stellar для самостоятельной работы под названием Stellar Converter for Database, который может напрямую выбирать файл базы данных конкретной базы данных и обеспечивать предварительный просмотр конвертируемых таблиц, а после преобразования будет напрямую сохранять данные в указанной базе данных. установлен в вашей системе. В этом случае вам нужно будет предоставить файл базы данных MS SQL, и после преобразования он будет сохранен в базе данных MySQL, установленной в системе. Вы можете получить бесплатную версию этого программного обеспечения с официального сайта Stellar .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.