Потрібно перенести SQL Server на MySQL


22

У мене є база даних на SQL Server 2008 на сервері Windows, і я хочу перемістити всі дані в базу даних MySQL на сервері Ubuntu. Я спробував використовувати майстра імпорту та експорту SQL Server з драйвером MySQL ODBC, і він правильно отримує доступ до обох баз даних, але файли xml, що містять специфікації для перетворення типів, не існували, і специфікації були для мене занадто обмеженими, щоб правильно їх створити. Хтось знає або як створити файли перетворення типу, або де отримати кращий інструмент для передачі цих даних?


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

@Marian Дякую за посилання. Використання MySQL-сервера як підключеного сервера на SQL Server, здається, є вирішенням моєї проблеми.
murgatroid99

1
Про скільки ми говоримо? 5 Мб? 3 ТБ?
AaronJAnderson

Я думаю, це було ГБ або 10 ГБ, але я не дуже пам’ятаю, тому що це питання було півтора року тому.
murgatroid99

Відповіді:


13

У мене є дві пропозиції:

1) Я ненавиджу рекламу комерційних товарів, але є інструменти на $ 49,00 для перенесення MSSQL на MySQL

2) Спробуйте форуми з міграції MSSQL MySQL для подальших пропозицій

ОНОВЛЕННЯ 2011-06-03 18:03 EDT

Є старий продукт, який вийшов у EOL ще в січні 2010 року під назвою MySQL Migration Toolkit . Якщо ти зможеш її вхопити, ти можеш скористатися нею.

ОНОВЛЕННЯ 2011-06-03 18:06 EDT

Я знайшов архіви !!! Ось MySQL Migration Toolkit

ОНОВЛЕННЯ 2011-06-03 18:11 EDT

Ось огляд інструментарію міграції MySQL

ОНОВЛЕННЯ 2011-06-03 19:08 EDT

Ще один комерційний продукт ($ 29)

ОНОВЛЕННЯ 2011-06-03 19:30 EDT

Ось список безкоштовних інструментів, які переносять MSSQL на MySQL.

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

Отримайте WhitePaper (PDF) від Oracle у Посібнику з міграції Microsoft SQL Server на MySQL (все ще комерційний)

ОНОВЛЕННЯ 2012-08-21 01:24 EDT

Відповідно до цієї веб-сторінки 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.


2

Я спробував міграційний інструментарій імпортувати з SQL-сервера до MySQL. Але виявлено, що імпорт SQLyog хороший для зовнішніх даних. Я міг запланувати процес імпорту, а також зробити необхідні відображення для імпорту в існуючу таблицю. Завантажте звідси .

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


SQLyog - чудовий інструмент, але функція "імпорту зовнішніх даних" надзвичайно повільна. Як і на кілька порядків повільніше, ніж MySQL Workbench. Я б хотів, щоб розробники SQLyog вирішили проблему, оскільки інтерфейс набагато інтуїтивніший, ніж Workbench. Але якщо ви лише імпортуєте сотні рядків, ніж готові чекати годин або, можливо, днів, щоб імпорт закінчився.
nextgentech

2

Нещодавно я випустив етлалхімію для виконання цього завдання. Це рішення з відкритим джерелом, яке дозволяє мігрувати між будь-якими 2 базами даних SQL за допомогою 4-х рядків Python . Підтримувані RDBMS включають 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 може допомогти вам виконати це завдання

1) Щоб почати процес міграції, на головному екрані MySQL Workbench перейдіть до бази даних-> Майстер міграції.

2) Ми повинні перевірити передумови, щоб підтвердити, чи можемо ми продовжувати завдання. Якщо все виглядає нормально, ми можемо натиснути на «Почати міграцію».

3) На цьому кроці нам потрібно надати інформацію про вихідну базу даних, у цьому випадку SQL Server.

Ми налаштуємо наш вихідний параметр:

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

Спосіб підключення: ODBC (Native)

Драйвер: SQL Server

Сервер: localhost

Ім'я користувача: sa

4) Тепер ми можемо перевірити з'єднання за допомогою кнопки Test Connection.

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) Якщо все пішло добре, ми можемо продовжувати, вибираючи, як ми хочемо створити міграційну схему в цілі. Ми будемо використовувати опцію "Створити схему в цільовій RDBMS" за замовчуванням.

13) Тепер перевіримо процес створення схеми.

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

15) На даний момент у нас буде структура бази даних, але ми ще не маємо даних. Тепер ми виберемо, як ми хочемо скопіювати дані на MySQL Server. Ми будемо використовувати опцію "Інтернет-копія даних таблиці для націлювання на RDBMS".

16) На останньому кроці ми можемо перевірити звіт про міграцію та закінчити завдання.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.