Ich habe eine .sql-Datei aus einem MySQL-Dump, die Tabellen, Definitionen und Daten enthält, die in diese Tabellen eingefügt werden sollen. Wie kann ich diese in der Dump-Datei dargestellte Datenbank in eine MS SQL Server-Datenbank konvertieren?
mysql
sql-server
mysqldump
Marionmaiden
quelle
quelle
Antworten:
Verwenden Sie den SQL Server-Migrationsassistenten (SSMA).
Zusätzlich zu MySQL unterstützt es Oracle, Sybase und MS Access.
Es scheint ziemlich klug zu sein und auch nicht triviale Übertragungen verarbeiten zu können. Es hat auch eine Befehlszeilenschnittstelle (zusätzlich zur GUI), so dass es theoretisch in einen Batch-Ladeprozess integriert werden kann.
Dies ist der aktuelle Download-Link für die MySQL-Version https://www.microsoft.com/en-us/download/details.aspx?id=54257
Die aktuelle (Juni 2016) stabile Version 6.0.1 stürzt beim Übertragen von Daten mit dem aktuellen (5.3.6) MySQL ODBC-Treiber ab. Alles 64 Bit. Die Version 5.3 mit dem ODBC-Treiber 5.1.13 funktioniert einwandfrei.
quelle
Ich schlage vor, dass Sie mysqldump wie folgt verwenden :
mysqldump --compatible=mssql
phpMyAdmin ist immer noch eine Web-App und kann möglicherweise einige Einschränkungen für große Datenbanken aufweisen (Skriptausführungszeit, zuweisbarer Speicher usw.).
quelle
Ich habe im Netz einen Weg dafür gefunden
Es erfordert ein wenig Arbeit, weil es Tisch für Tisch erledigt werden muss. Trotzdem konnte ich die Tabellen, Daten und Einschränkungen in eine MS SQL-Datenbank kopieren.
Hier ist der Link
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx
quelle
Wenn Sie einen Export mit PhpMyAdmin durchführen , können Sie den SQL-Kompatibilitätsmodus auf "MSSQL" umschalten. Auf diese Weise führen Sie das exportierte Skript einfach für Ihre MS SQL-Datenbank aus und sind fertig.
Wenn Sie PhpMyAdmin nicht verwenden können oder möchten, gibt es auch eine Kompatibilitätsoption in mysqldump , aber ich persönlich möchte, dass PhpMyAdmin dies für mich erledigt.
quelle
Hier ist mein Ansatz zum Importieren von SQL-Dateien in MS SQL:
Exportieren Sie eine Tabelle aus MySQL mit
--compatible=mssql
und--extended-insert=FALSE
Optionen:mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql
Teilen Sie die exportierte Datei mit PowerShell durch 300000 Zeilen pro Datei:
$i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}
Führen Sie jede Datei in MS SQL Server Management Studio aus
Es gibt nur wenige Tipps, wie Sie die Einsätze beschleunigen können .
Ein anderer Ansatz ist die Verwendung der
–where
Option mysqldump . Mit dieser Option können Sie Ihre Tabelle unter allen Bedingungenwhere
aufteilen, die von der SQL-Klausel unterstützt werden .quelle
--databases [db_name]
Schlüsselwort, wie es in dieser Antwort erklärt wurde: stackoverflow.com/a/26096339/155687Ich hatte heute ein sehr ähnliches Problem - ich musste eine große Tabelle (5 Millionen Zeilen) von MySql in MS SQL kopieren.
Hier sind die Schritte, die ich gemacht habe (unter Ubuntu Linux):
Erstellt eine Tabelle in MS SQL, deren Struktur mit der Quelltabelle in MySql übereinstimmt.
Installierte MS SQL-Befehlszeile: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu
Tabelle von MySql in eine Datei geschrieben:
In meinem Fall war die Dump-Datei ziemlich groß, daher habe ich beschlossen, sie in mehrere kleine Teile (jeweils 1000 Zeilen) aufzuteilen.
split --lines=1000 "$FILENAME" part-
Schließlich habe ich diese kleinen Dateien durchlaufen, einige Texte ersetzt und die Teile einzeln gegen MS SQL Server ausgeführt:
Natürlich müssen Sie meine Variablen ersetzen , wie
$AZURE_SERVER
,$TABLE
usw. mit Ihnen.Hoffentlich hilft das.
quelle
Für mich hat es am besten funktioniert, alle Daten mit diesem Befehl zu exportieren:
--extended-insert = FALSE wird benötigt, um das Importlimit für 1000 mssql-Zeilen zu vermeiden.
Ich habe meine Tabellen mit meinem Migrationstool erstellt, daher bin ich mir nicht sicher, ob CREATE aus der Datei backup.sql funktioniert.
In MSSQLs SSMS musste ich die Daten Tabelle für Tabelle mit der IDENTITY_INSERT ON importieren, um die ID-Felder zu schreiben:
Wenn Sie Beziehungen haben, müssen Sie zuerst das untergeordnete Element und dann die Tabelle mit dem Fremdschlüssel importieren.
quelle
Sie können auch 'ODBC' + 'SQL Server-Import- und Export-Assistent' verwenden. Der folgende Link beschreibt es: https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/
quelle
Lauf:
Möchten Sie eine Prozessleiste sehen?
quelle