Musisz przeprowadzić migrację programu SQL Server do MySQL


22

Mam bazę danych SQL Server 2008 na serwerze Windows i chcę przenieść wszystkie dane do bazy danych MySQL na serwerze Ubuntu. Próbowałem użyć Kreatora importu i eksportu programu SQL Server ze sterownikiem MySQL ODBC i poprawnie uzyskuje on dostęp do obu baz danych, ale pliki xml zawierające specyfikacje konwersji typów nie istniały, a specyfikacje były zbyt ograniczone, aby je poprawnie utworzyć. Czy ktoś wie, jak utworzyć pliki konwersji typu lub gdzie znaleźć lepsze narzędzie do przesyłania tych danych?


1
Widziałeś to pytanie? Chodzi o replikację danych z MySql do MSSQL. Może znajdziesz tam jakieś wskazówki.
Marian

@Marian Dzięki za link. Używanie serwera MySQL jako serwera połączonego w SQL Server wydaje się być rozwiązaniem mojego problemu.
murgatroid99

1
O ile danych mówimy? 5 MB? 3 TB?
AaronJAnderson

Myślę, że były to GB lub 10 GB, ale tak naprawdę nie pamiętam, ponieważ to pytanie pochodzi z półtora roku temu.
murgatroid99

Odpowiedzi:


13

Mam dwie sugestie:

1) Nienawidzę oferowania produktów komercyjnych, ale istnieje 49,00 USD narzędzi do migracji MSSQL do MySQL

2) Wypróbuj fora migracji MSSQL firmy MySQL w celu uzyskania dalszych sugestii

AKTUALIZACJA 2011-06-03 18:03 EDT

Istnieje stary produkt, który przeszedł EOL w styczniu 2010 r., O nazwie MySQL Migration Toolkit . Jeśli możesz go zdobyć, możesz go użyć.

AKTUALIZACJA 2011-06-03 18:06 EDT

Znalazłem archiwa !!! Oto zestaw narzędzi do migracji MySQL

AKTUALIZACJA 2011-06-03 18:11 EDT

Oto przegląd MySQL Migration Toolkit

AKTUALIZACJA 2011-06-03 19:08 EDT

Kolejny produkt komercyjny (29 USD)

AKTUALIZACJA 2011-06-03 19:30 EDT

Oto lista darmowych narzędzi, które migrują MSSQL do MySQL.

AKTUALIZACJA 15.06.2011 17:47 EDT

Pobierz WhitePaper (PDF) od Oracle w Przewodniku po migracji Microsoft SQL Server do MySQL (wciąż komercyjny)

AKTUALIZACJA 21.08.2012 01:24 EDT

Zgodnie z tą stroną MySQL , sekcja MySQL Workbench: Database Migration Wizardtwierdzi, że MySQL Workbench ma możliwość migracji obiektów DB z SQL Server do MySQL.


1
Wolałbym nie używać żadnych produktów komercyjnych, jeśli mogę ich uniknąć. Próbowałem użyć Migration Toolkit, ale myślę, że jest on niezgodny z najnowszą wersją MySQL: wygenerowane instrukcje wstawiania SQL zawierały ogromną liczbę błędów składniowych, a wygenerowane tabele nie miały wierszy po uruchomieniu kreatora. Wydaje się, że narzędzia shareware działają również ze starszymi wersjami MySQL. Dzieki za probe.
murgatroid99

4

Na podstawie sugestii Mariana znalazłem odpowiedź na temat replikacji w innym kierunku, konfigurując serwer MySQL jako serwer połączony w MS SQL Server. Gdy MySQL jest skonfigurowany jako serwer połączony, mogę uruchamiać zapytania SQL w obu bazach danych jednocześnie, co zapewnia dokładnie taką funkcjonalność, jakiej potrzebowałem do rozwiązania tego problemu.


3

Czy zastanawiałeś się nad użyciem SSIS do tego zadania? Jest to narzędzie ETL dla SQL Server i ma wiele transformacji i logiki, które mogą pomóc w wykonaniu tego zadania.


Kreator importu / eksportu, o którym wspomniałem, faktycznie tworzy pakiety SSIS. Problem, jaki miałem, polegał na tym, że SSIS używa plików XML do przechowywania danych o tym, jak konwertować typy między różnymi systemami zarządzania bazami danych, a te pliki nie istniały w MySQL.
murgatroid99


2

Próbowałem importować zestaw narzędzi do migracji z serwera SQL do MySQL. Ale okazało się, że SQLyog Import danych zewnętrznych jest dobry. Mogę zaplanować proces importowania, a także wykonać niezbędne mapowania, aby zaimportować do istniejącej tabeli. Pobierz stąd .

wprowadź opis zdjęcia tutaj


SQLyog to świetne narzędzie, ale funkcja „importuj dane zewnętrzne” jest bardzo powolna. Podobnie jak w kilku rzędach wielkości wolniej niż MySQL Workbench. Chciałbym, aby programiści SQLyog rozwiązali ten problem, ponieważ interfejs jest znacznie bardziej intuicyjny niż Workbench. Ale chyba że importujesz tylko setki wierszy, niż być przygotowanym na czekanie godzin lub dni na zakończenie importu.
nextgentech

2

Niedawno wydałem etlalchemy, aby wykonać to zadanie. Jest to rozwiązanie typu open source, które umożliwia migrację między dowolnymi 2 bazami danych SQL za pomocą 4 linii Pythona . Obsługiwane RDBMS obejmują MySQL, PostgreSQL, Oracle, SQLite i SQL Server.

Zajmie się to zniechęcającym zadaniem mapowania typów kolumn jednego dostawcy SQL na inne. Nie tylko przesyła i tłumaczy schemat , ale także migruje wszystkie dane, indeksy i ograniczenia w bazach danych.

Żeby zainstalować:

$ pip install etlalchemy

Na El Capitan :pip install --ignore-installed etlalchemy

Biegać:

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)

Aby uzyskać więcej informacji na temat początków projektu, sprawdź ten post. Jeśli wystąpią jakiekolwiek błędy podczas uruchamiania narzędzia, otwórz problem w repozytorium github, a ja załatwię go w niecały tydzień!


0

Narzędzie MySQL Workbench Migration może pomóc w wykonaniu tego zadania

1) Aby rozpocząć proces migracji, na głównym ekranie MySQL Workbench przejdź do Database-> Migration Wizard.

2) Powinniśmy sprawdzić warunki wstępne, aby potwierdzić, czy możemy kontynuować zadanie. Jeśli wszystko wygląda dobrze, możemy nacisnąć Rozpocznij migrację.

3) W tym kroku musimy podać informacje o źródłowej bazie danych, w tym przypadku SQL Server.

Skonfigurujemy nasz parametr źródłowy:

System baz danych: Microsoft SQL Server

Metoda połączenia: ODBC (macierzysty)

Sterownik: SQL Server

Serwer: localhost

Nazwa użytkownika: sa

4) Teraz możemy sprawdzić połączenie za pomocą przycisku Testuj połączenie.

5) Następnie musimy dodać parametry docelowe:

Metoda połączenia: standardowa (TCP / IP)

Nazwa hosta: nazwa_hosta

Port: 3306

Nazwa użytkownika: migracja

6) I naciśnij przycisk Testuj połączenie, aby potwierdzić dodane informacje.

7) W następnym kroku MySQL Workbench połączy się z naszym SQL Server, aby pobrać listę katalogów i schematów.

8) Teraz wybierzemy bazę danych Twoja_bazy_danych z listy.

Możemy wybrać sposób odwzorowywania odwróconych schematów i obiektów. Użyjemy opcji Catalog.Schema.Table -> Catalog.Table, więc w naszym MySQL wybieramy bazę danych i bieżące tabele, które mamy w naszej bazie danych SQL Server.

9) Jeśli wszystko pójdzie dobrze, będziemy mieli listę obiektów do migracji.

10) W tym przypadku mamy obiekty tabeli, obiekty widoku i obiekty rutynowe. Będziemy wybierać tylko obiekty tabel, ponieważ dla reszty obiektu powinniśmy ręcznie sprawdzić odpowiedni równoważny kod MySQL.

11) W tym kroku obiekty ze źródła są konwertowane na obiekty kompatybilne z MySQL.

12) Jeśli wszystko poszło dobrze, możemy kontynuować, wybierając sposób utworzenia zmigrowanego schematu w celu. Użyjemy domyślnej opcji „Utwórz schemat w docelowym systemie RDBMS”.

13) Teraz sprawdźmy proces tworzenia schematu.

14) W następnym kroku możemy sprawdzić wynik każdego skryptu i możemy sprawdzić nową bazę danych utworzoną na naszym serwerze MySQL.

15) W tym momencie będziemy mieć strukturę bazy danych, ale nie mamy jeszcze danych. Teraz wybierzemy, w jaki sposób chcemy skopiować dane na serwerze MySQL. Użyjemy opcji „Kopia danych tabeli w trybie online do targetowania RDBMS”.

16) W ostatnim kroku możemy sprawdzić raport z migracji i zakończyć zadanie.

Inną łatwą metodą konwersji MS SQL DB na MySQL jest użycie narzędzia Stellar DIY o nazwie Stellar Converter for Database, które może bezpośrednio wybrać plik bazy danych konkretnej bazy danych i zapewnić podgląd tabel konwertowalnych, a po konwersji bezpośrednio zapisuje dane do określonej bazy danych zainstalowany w twoim systemie. W takim przypadku musisz podać plik bazy danych MS SQL, a po konwersji zostanie on zapisany w bazie danych MySQL zainstalowanej w systemie. Możesz pobrać bezpłatną wersję tego oprogramowania z oficjalnej strony internetowej Stellar .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.