Frage

Der Titel ist selbsterklärend. Gibt es eine Möglichkeit, direkt eine solche Art von Import zu tun?

War es hilfreich?

Lösung

Die BAK-Dateien von SQL Server sind in Microsoft Tape Format (MTF) ref: http: / /www.fpns.net/willy/msbackup.htm

Die bak-Datei wird wahrscheinlich die LDF enthalten und MDF-Dateien, die SQL Server verwendet die Datenbank zu speichern.

Sie müssen SQL Server verwenden, um diese zu extrahieren. SQL Server Express ist kostenlos und wird den Job.

So installieren Sie SQL Server Express Edition, und öffnen Sie den SQL Server Powershell. Es ausführt sqlcmd -S <COMPUTERNAME>\SQLExpress (während als Administrator angemeldet)

Sie dann den folgenden Befehl ein.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

Dies wird den Inhalt der Backup-Liste - was Sie brauchen die ersten Felder ist, dass Sie die logischen Namen sagen -. Man wird die aktuelle Datenbank und die andere die Protokolldatei sein

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

An diesem Punkt die Datenbank extrahiert haben - dann a href installieren <= „http://www.microsoft.com/downloads/details.aspx?FamilyID=c039a798-c57a-419e-acbc-2a332cb7f959&displaylang=en“ rel = "noreferrer"> Microsofts "SQL Web Data Administrator". zusammen mit diesem Export-Tool und Sie erhalten einen SQL-Skript, das die Datenbank enthält.

Andere Tipps

Ich habe es nicht geschafft, einen Weg zu finden, es direkt zu tun.

Stattdessen importierte ich die bak-Datei in SQL Server 2008 Express, und dann verwendet MySQL Migration Toolkit .

Arbeitete wie ein Charme!

MySql haben eine Anwendung db von Microsoft SQL zu importieren. Schritte:

  1. Öffnen MySQL Workbench
  2. Klicken Sie auf „Datenbank-Migration“ (wenn es nicht angezeigt werden Sie es von MySql Update installieren)
  3. Folgen Sie der Migration Task-Liste der einfachen Assistenten.
  1. Öffnen Sie SQL Server Management Studio auf dem lokalen Computer.
  2. Recht der Ordner Datenbanken klicken. Aus dem Pop-up-Menü wählen Sie Neue Datenbank.
  3. Geben Sie einen Datenbanknamen, und klicken Sie auf OK.
  4. Rechtsklick auf das neue Datenbank-Symbol. Aus dem Pop-up-Menü, wählen Sie Aufgaben -> wiederherstellen. -> Datenbank
  5. Wählen Sie die Option Von Gerät, und klicken Sie dann auf die Schaltfläche Durchsuchen.
  6. Klicken Sie auf Hinzufügen und auf die entsprechende Datei navigieren. Klicken Sie auf OK.
  7. Im Fenster Datenbank wiederherstellen das Kontrollkästchen neben der BAK-Datei.
  8. Wechseln Sie auf der Seite Optionen. Wählen Sie das Überschreiben der vorhandenen Datenbank Checkbox. Klicken Sie auf OK.
  9. Überprüfen Sie den Inhalt Ihrer Datenbank, die jetzt aktiv auf dem lokalen Computer ist.

Obwohl meine MySQL Hintergrund begrenzt ist, ich glaube nicht, dass Sie viel Glück haben, das zu tun. Allerdings sollten Sie in der Lage sein, alle Ihre Daten migriert werden durch die DB zu einem MSSQL-Server wiederherstellen, dann ein SSIS oder DTS-Paket Erstellen von Tabellen und Daten in den MySQL-Server zu senden.

hoffe, das hilft

Ich bezweifle es stark. Vielleicht möchten Sie DTS / SSIS verwenden, um dies zu tun, wie Levi sagt. Man sollte meinen, dass Sie tun möchten, ist den Prozess zu starten, ohne tatsächlich die Daten zu importieren. Gerade genug tun, um die grundlegenden Tabellenstrukturen zusammen zu bekommen. Dann gehen Sie rund um die resultierende Tabellenstruktur ändern zu wollen, weil alles, was Struktur tut wahrscheinlich erstellt werden wird bestenfalls wackelig.

Sie können auch dies noch einen Schritt weiter müssen und einen Bereitstellungsbereich erstellen, die zuerst in allen Daten nimmt n eine Zeichenfolge (Varchar) Form. Dann können Sie ein Skript zu erstellen, die Validierung und Konvertierung tut, um es in die „echte“ Datenbank zu erhalten, weil die beiden Datenbanken nicht immer gut zusammenarbeiten, vor allem, wenn mit Daten zu tun.

Die Methode, die ich eingeschlossenen Teil von Richard Harrison Methode verwendet:

  

So, SQL Server 2008 Express installieren   Ausgabe,

Dies erfordert den Download des Web Platform Installer "wpilauncher_n.exe" Sobald Sie diese installiert, klicken Sie auf die Datenbankauswahl haben (Sie werden auch zum Download Frameworks und Runtimes erforderlich)

Nach instalation Sie auf die Windows-Eingabeaufforderung und:

  

verwenden sqlcmd -S \ SQLExpress (während   als Administrator angemeldet)

     

Sie dann den folgenden Befehl ein.

     

wiederherstellen FILELISTONLY aus   disk = 'c: \ temp \ mydbname-2009-09-29-v10.bak';   GO Dadurch wird der Inhalt der Liste   Backup - was Sie brauchen, ist die erste   Felder, die die logischen Namen sagen   -. Man wird die aktuelle Datenbank und die andere der Protokolldatei sein

     

RESTORE DATABASE mydbname FROM   disk = 'c: \ temp \ mydbname-2009-09-29-v10.bak' WITH MOVE 'mydbname' TO   'C: \ temp \ mydbName_data.mdf', MOVE   'MydbName_log' TO   'C: \ temp \ mydbName_data.ldf'; GO

feuerte ich Web Platform Installer und von dem, was neuen Tab, das ich installiert SQL Server Management Studio und durchsucht die DB sicher war da noch die Daten zu machen ...

An diesem Punkt habe ich versucht, das Werkzeug mit MSSQL „SQL Import und Export-Assistenten“ enthalten, aber das Ergebnis des csv-Dump nur die Spaltennamen enthielt ...

Also anstatt ich wie nur Ergebnisse von Abfragen exportiert "select * from users" aus dem SQL Server Management Studio

SQL Server-Datenbanken sind sehr proprietäre Microsoft. Zwei Optionen, die ich denken kann, sind:

  1. die Datenbank im CSV-Dump, XML oder ein ähnliches Format, das Sie würden dann in MySQL laden.

  2. Setup ODBC-Verbindung zu MySQL und dann die Daten mit DTS transportieren. Wie Charles Graham vorgeschlagen hat, können Sie die Tabellen erstellen müssen, um diese vor zu tun. Aber das ist so einfach wie ein Ausschneiden und Einfügen von SQL Enterprise Manager-Fenster mit dem entsprechenden MySQL-Fenster.

Für über diejenigen, die versuchen Richard-Lösung, hier sind einige zusätzliche Informationen, die häufige Fehler navigieren helfen könnten:

1) Beim Ausführen wiederherstellen FILELISTONLY können Sie Systemfehler erhalten Betrieb 5 (Zugriff verweigert wird). Wenn das der Fall ist, öffnen Sie SQL Server Configuration Manager und die Login für SQLEXPRESS an einen Benutzer ändern, die lokalen Schreibrechte hat.

2) @ „Dies wird den Inhalt der Backup-Liste - was Sie brauchen die ersten Felder ist, dass Sie die logischen Namen sagen“ - wenn die Datei mehr als zwei Header Listen müssen Sie auch berücksichtigen, was zu tun diese Dateien in dem Befehl RESTORE DATABASE. Wenn Sie nicht angeben, was mit Dateien über die Datenbank zu tun, und das Protokoll, wird das System offenbar versuchen, die Attribute in der BAK-Datei aufgelistet zu verwenden. eine Datei von einer fremden Umgebung Wiederherstellen produziert ein ‚Der Pfad ungültige Attribute hat. Es muss ein Verzeichnis sein‘(wie der Weg in Frage nicht auf Ihrem Computer nicht vorhanden ist). Einfach eine MOVE-Anweisung Bereitstellung löst dieses Problem.

In meinem Fall gibt es eine dritte FTData Typ-Datei. Der MOVE-Befehl I hinzugefügt:

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

in meinem Fall hatte ich eigentlich ein neues Verzeichnis für die dritte Datei zu machen. Zunächst versuchte ich es in den gleichen Ordner wie die MDF-Datei zu senden, aber das erzeugt eine ‚konnte nicht richtig initialisiert werden‘ Fehler auf der dritten FTData Datei, wenn ich die ausgeführt wiederherstellen.

Die BAK-Datei von SQL Server ist spezifisch für diese Datenbank Dialekt, und nicht kompatibel mit MySQL.

Versuchen Sie es mit etlalchemy SQL Server-Datenbank in MySQL zu migrieren. Es ist ein Open-Source-Tool, das ich einfach Migrationen zwischen verschiedenen RDBMS zu erleichtern erstellt.

Schnelle Installation und Beispiele werden hier auf der Github Seite zur Verfügung gestellt und eine ausführlichere Erläuterung des Projektes Ursprünge werden hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top