SQL Server muss nach MySQL migriert werden

22

Ich habe eine Datenbank in SQL Server 2008 auf einem Windows-Server und möchte alle Daten in eine MySQL-Datenbank auf einem Ubuntu-Server verschieben. Ich habe versucht, den SQL Server-Import- und -Export-Assistenten mit dem MySQL-ODBC-Treiber zu verwenden, und er greift korrekt auf beide Datenbanken zu, aber die XML-Dateien mit den Spezifikationen für die Typkonvertierung waren nicht vorhanden und die Spezifikationen waren zu begrenzt, um sie korrekt zu erstellen. Weiß jemand, wie man die Typkonvertierungsdateien erstellt oder wo man ein besseres Tool zum Übertragen dieser Daten bekommt?

murgatroid99
quelle
1
Hast du diese Frage gesehen? Es geht darum, Daten von MySQL nach MSSQL zu replizieren. Vielleicht finden Sie dort einige Hinweise.
Marian
@Marian Danke für den Link. Die Verwendung des MySQL-Servers als Verbindungsserver in SQL Server scheint eine Lösung für mein Problem zu sein.
murgatroid99
1
Über wie viele Daten sprechen wir? 5mb? 3 TB?
AaronJAnderson
Ich glaube, es waren GB oder 10 GB, aber ich erinnere mich nicht wirklich, weil diese Frage vor anderthalb Jahren gestellt wurde.
murgatroid99

Antworten:

13

Ich habe zwei Vorschläge:

1) Ich hasse es, kommerzielle Produkte auf den Markt zu bringen, aber es gibt Tools für die Migration von MSSQL zu MySQL im Wert von 49,00 USD

2) Weitere Vorschläge finden Sie in den MSSQL-Migrationsforen von MySQL

UPDATE 2011-06-03 18:03 EDT

Es gibt ein altes Produkt, das im Januar 2010 von EOL eingeführt wurde und das MySQL Migration Toolkit heißt . Wenn Sie es bekommen können, können Sie es verwenden.

UPDATE 2011-06-03 18:06 EDT

Ich habe die Archive gefunden !!! Hier ist das MySQL Migration Toolkit

UPDATE 03.06.2011 18:11 EDT

Hier ist die Übersicht über das MySQL Migration Toolkit

UPDATE 2011-06-03 19:08 EDT

Ein weiteres kommerzielles Produkt (29 US-Dollar)

UPDATE 03.06.2011 19:30 EDT

Hier ist eine Liste von Freeware-Tools, die MSSQL nach MySQL migrieren.

UPDATE 15.06.2011 17:47 Uhr EDT

Laden Sie das WhitePaper (PDF) von Oracle im Handbuch zur Migration von Microsoft SQL Server zu MySQL (noch kommerziell) herunter.

UPDATE 2012-08-21 01:24 EDT

Gemäß dieser MySQL-WebseiteMySQL Workbench: Database Migration Wizard behauptet der Abschnitt , dass die MySQL Workbench die Fähigkeit hat, DB-Objekte von SQL Server nach MySQL zu migrieren.

RolandoMySQLDBA
quelle
1
Ich würde es vorziehen, keine kommerziellen Produkte zu verwenden, wenn ich sie vermeiden kann. Ich habe versucht, das Migration Toolkit zu verwenden, aber ich denke, es ist mit der neuesten Version von MySQL nicht kompatibel: Die generierten SQL-Einfügeanweisungen wiesen eine enorme Anzahl von Syntaxfehlern auf und die generierten Tabellen hatten nach dem Ausführen des Assistenten keine Zeilen. Die Shareware-Tools funktionieren offenbar auch mit älteren MySQL-Versionen. Danke für den Versuch.
murgatroid99
4

Basierend auf Marians Vorschlag habe ich diese Antwort zum Replizieren in die andere Richtung gefunden, indem ich den MySQL-Server als Verbindungsserver in MS SQL Server eingerichtet habe. Mit MySQL als Verbindungsserver kann ich SQL-Abfragen für beide Datenbanken gleichzeitig ausführen. Dies bietet genau die Funktionalität, die ich zur Lösung dieses Problems benötige.

murgatroid99
quelle
3

Haben Sie sich mit der Verwendung von SSIS für diese Aufgabe befasst? Dies ist das ETL-Tool für SQL Server. Es verfügt über zahlreiche Transformationen und Logikfunktionen, mit denen Sie diese Aufgabe ausführen können.

SQLChicken
quelle
Der von mir erwähnte Import / Export-Assistent erstellt tatsächlich SSIS-Pakete. Das Problem, das ich hatte, war, dass SSIS XML-Dateien zum Speichern von Daten zum Konvertieren zwischen Typen in verschiedenen Datenbankverwaltungssystemen verwendet und diese Dateien für MySQL nicht vorhanden waren.
murgatroid99
3

MySQL Workbench kann dies:

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

Es kann direkt auf dem MS SQL Server-Rechner installiert werden (Geschwindigkeitsvorteil!), Der Zugriff auf Ihren Ubuntu MySQL-Server haben muss.

mit
quelle
2

Ich habe versucht, das Migration Toolkit von SQL Server nach MySQL zu importieren. Aber SQLyog Import externe Daten gut gefunden. Ich könnte den Importvorgang einplanen und auch die erforderlichen Zuordnungen vornehmen, um in eine vorhandene Tabelle zu importieren. Herunterladen von hier .

Bildbeschreibung hier eingeben

Jacob
quelle
SQLyog ist ein großartiges Tool, aber die Funktion "Externe Daten importieren" ist extrem langsam. Wie in einigen Größenordnungen langsamer als MySQL Workbench. Ich wünschte, SQLyog-Entwickler würden das Problem beheben, da die Benutzeroberfläche viel intuitiver ist als Workbench. Wenn Sie jedoch nur Hunderte von Zeilen importieren, müssen Sie darauf vorbereitet sein, Stunden oder möglicherweise Tage auf den Abschluss des Imports zu warten.
nextgentech
2

Ich habe kürzlich etlalchemy veröffentlicht , um diese Aufgabe zu erfüllen. Es ist eine Open-Source-Lösung, die die Migration zwischen 2 beliebigen SQL-Datenbanken mit 4 Python-Zeilen ermöglicht . Zu den unterstützten RDBMS gehören MySQL, PostgreSQL, Oracle, SQLite und SQL Server.

Dies erledigt die entmutigende Aufgabe, die Spaltentypen eines SQL-Anbieters einem anderen zuzuordnen. Es wird nicht nur das Schema übertragen und übersetzt , sondern es werden auch alle Daten, Indizes und Einschränkungen über Datenbanken hinweg migriert.

Installieren:

$ pip install etlalchemy

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

Zu rennen:

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)

Weitere Informationen zu den Ursprüngen des Projekts finden Sie in diesem Beitrag. Wenn Sie Fehler beim Ausführen des Tools haben, öffnen Sie ein Problem im Github-Repo und ich werde es in weniger als einer Woche reparieren !

Die Aelfinn
quelle
0

Das MySQL Workbench-Migrationstool unterstützt Sie bei dieser Aufgabe

1) Um den Migrationsprozess zu starten, gehen Sie im Hauptbildschirm von MySQL Workbench zu Datenbank-> Migrationsassistent.

2) Wir sollten die Voraussetzungen prüfen, um zu bestätigen, dass wir die Aufgabe fortsetzen können. Wenn alles in Ordnung ist, können wir auf Migration starten klicken.

3) In diesem Schritt müssen Sie die Informationen zur Quellendatenbank (in diesem Fall SQL Server) bereitstellen.

Wir konfigurieren unseren Quellparameter:

Datenbanksystem: Microsoft SQL Server

Verbindungsmethode: ODBC (Native)

Treiber: SQL Server

Server: localhost

Benutzername: sa

4) Jetzt können wir die Verbindung mit der Schaltfläche Verbindung testen überprüfen.

5) Dann müssen wir die Zielparameter hinzufügen:

Verbindungsmethode: Standard (TCP / IP)

Hostname: Ihr_Hostname

Port: 3306

Benutzername: migration

6) Und drücken Sie auf Verbindung testen, um die hinzugefügten Informationen zu bestätigen.

7) Im nächsten Schritt stellt MySQL Workbench eine Verbindung zu unserem SQL Server her, um eine Liste der Kataloge und Schemata abzurufen.

8) Nun wählen wir die Datenbank Your_database_name aus der Liste aus.

Wir können wählen, wie die Reverse-Engineered-Schemata und -Objekte zugeordnet werden sollen. Wir werden die Option Catalog.Schema.Table -> Catalog.Table verwenden, sodass wir in MySQL die Datenbank und die aktuellen Tabellen in unserer SQL Server-Datenbank ausgewählt haben.

9) Wenn alles geklappt hat, haben wir eine Liste der zu migrierenden Objekte.

10) In diesem Fall haben wir Tabellenobjekte, Ansichtsobjekte und Routineobjekte. Wir werden nur die Tabellenobjekte auswählen, da wir für den Rest des Objekts den entsprechenden MySQL-äquivalenten Code manuell überprüfen sollten.

11) In diesem Schritt werden die Objekte aus der Quelle in MySQL-kompatible Objekte konvertiert.

12) Wenn alles geklappt hat, können wir fortfahren, indem wir auswählen, wie das migrierte Schema im Ziel erstellt werden soll. Wir verwenden die Standardoption "Schema in Ziel-RDBMS erstellen".

13) Lassen Sie uns nun den Erstellungsschema-Prozess überprüfen.

14) Im nächsten Schritt können wir das Ergebnis jeder Skriptausführung und die auf unserem MySQL Server erstellte neue Datenbank überprüfen.

15) An diesem Punkt haben wir die Datenbankstruktur, aber wir haben noch keine Daten. Nun legen wir fest, wie die Daten auf den MySQL-Server kopiert werden sollen. Wir verwenden die Option "Online-Kopie der Tabellendaten für das Ziel-RDBMS".

16) Im letzten Schritt können wir den Migrationsbericht überprüfen und die Aufgabe abschließen.

Eine andere einfache Methode zum Konvertieren einer MS SQL-Datenbank in MySQL ist Stellars DIY-Tool namens Stellar Converter for Database, das die Datenbankdatei einer bestimmten Datenbank direkt auswählt und eine Vorschau der konvertierbaren Tabellen bereitstellt. Nach der Konvertierung werden die Daten direkt in der angegebenen Datenbank gespeichert auf Ihrem System installiert. In diesem Fall müssen Sie eine MS SQL-Datenbankdatei bereitstellen, die nach der Konvertierung in der auf dem System installierten MySQL-Datenbank gespeichert wird. Sie können eine kostenlose Version dieser Software von der offiziellen Stellar- Website herunterladen .

Priyanka
quelle