Migrationsansätze

Abgeschlossen

Sie können viele unterschiedliche Ansätze zur Datenbankmigration verwenden, z. B. Online- oder Offlinemigration, Sicherung und Wiederherstellung oder Migration mit benutzerdefiniertem SQL-Code oder Skripts. Für ein bestimmtes Geschäftsszenario ist jeweils ein bestimmter Ansatz am besten geeignet.

In Ihrem Startup-Unternehmen ist beispielsweise die Lieferantenkommunikationsdatenbank entscheidend, und Sie möchten versuchen, eine Migration durchzuführen, ohne dass der Dienst für die Benutzer unterbrochen wird. Diese Abteilung des Unternehmens arbeitet auf 24/7-Basis, und es gibt nur wenige vorhersagbare ruhige Zeiten, in denen Sie die Datenbank offline schalten könnten. Das CAD-System wird dagegen nur während der Woche verwendet, sodass Sie es über ein Wochenende offline schalten und zu Azure migrieren könnten.

Hier erhalten Sie Informationen zu Ansätzen, Techniken und Tools, die Sie zur Ausführung der Migration auswählen können.

Verwendung von Export und Import

Mithilfe der Export- und Importverfahren können Sie Daten und Schema steuern, die bei der Migration verschoben werden. Verwenden Sie Export- und Importtools, wenn Sie auswählen möchten, welche Daten zur neuen Datenbank migriert werden sollen, und die Daten während der Migration möglicherweise bereinigen oder ändern möchten.

Verwenden Sie die Export- und Importverfahren unter folgenden Umständen:

  • Wenn Sie eine Teilmenge der Tabellen in der lokalen Datenbank auswählen möchten, die zur Clouddatenbank migriert werden soll.

  • Wenn Sie Datenbankobjekte wie Einschränkungen, Sichten, Funktionen, Prozeduren und Trigger migrieren und steuern möchten, wie diese Objekte in der Clouddatenbank eingerichtet werden.

  • Wenn Sie Daten aus anderen externen Quellen als MySQL, MariaDB oder PostgreSQL importieren möchten.

Beispielsweise könnten Sie in folgenden Szenarien Exportieren und Importieren in Erwägung ziehen:

  • Sie möchten eine schrittweise Migration durchführen, bei der die Marketingworkload vor der Workload zur Unterstützung des Vertriebs zur Cloud migriert und getestet wird. Beide Workloads verwenden Tabellen aus der SalesDB-Datenbank in Ihrem lokalen System. Sie möchten die Marketingtabellen nur in der ersten Phase des Projekts und die Vertriebstabellen nur in der zweiten Phase migrieren.

  • Ihre lokalen Daten sind veraltet und enthalten eine Mischung aus für das aktuelle Unternehmen relevanten und irrelevanten Daten. Sie möchten die Gelegenheit nutzen, veraltete Daten zu entfernen und streben ein optimiertes Datenbankschema an.

  • Sie verfügen über ein umfangreiches Arbeitsblatt, das Daten über Produkte enthält. Sie möchten diese Daten zur Clouddatenbank migrieren.

Planen einer Export- und Importmigration

Der Vorteil der Verwendung von Export und Import ist das zusätzliche Maß an Kontrolle über die migrierten Daten. Ein Nachteil ist jedoch, dass Sie sorgfältiger planen müssen, um sicherzustellen, dass alle benötigten Objekte enthalten sind.

Sie müssen unbedingt verstehen, wie die folgenden Objekte migriert werden:

  • Das Datenbankschema.
  • Einschränkungen einschließlich Primärschlüssel, Fremdschlüssel und Indizes.
  • Sichten, Funktionen, Prozeduren und Trigger.
  • Benutzerkonten und Berechtigungen.

Export und Import für MySQL und MariaDB

Sie können SQL-Skripts verwenden, um selektiv zwischen Datenbanken zu exportieren und importieren. Wenn Ihre lokale Datenbank jedoch eine MySQL- oder MariaDB-Datenbank ist, stehen Ihnen verschiedene Tools zur Verfügung, darunter:

  • MySQL Workbench. Dies ist ein von der Oracle Corporation entwickeltes gängiges Datenbankentwurfstool mit grafischer Benutzeroberfläche (GUI). Es enthält ein Data Export-Tool mit flexiblen Optionen zur Datenauswahl.

  • Toad Edge. Dies ist ein von Quest entwickeltes konkurrierendes Toolset. Hiermit exportieren und importieren Sie Daten sowohl aus und in MySQL- als auch PostgreSQL-Datenbanken.

  • Navicat. Dieses GUI-Tool für die Datenbankverwaltung ist auch mit MariaDB-Datenbanken kompatibel.

  • mysqlimport. Dieses Befehlszeilentool kann Daten aus Textdateien importieren.

Wichtig

Azure Database for MySQL und Azure Database for MariaDB unterstützen nur die InnoDB-Speicher-Engine. Wenn Sie über Tabellen verfügen, die andere Engines verwenden, z. B. die MyISAM-Engine, müssen Sie sie vor der Migration zu Azure in InnoDB konvertieren.

Exportieren und Importieren in PostgreSQL

PostgreSQL bietet die folgenden Tools zum Exportieren und Importieren von Daten:

  • pgAdmin. Dies ist ein GUI-Hilfsprogramm für PostgreSQL-Administratoren. Es bietet eine Benutzeroberfläche zum Exportieren und Importieren von Daten.

  • pg_dump. Mit diesem Befehlszeilentool exportieren Sie eine Datenbank in verschiedenen Formaten einschließlich Test. Sie können die resultierenden SQL-Dateien bearbeiten, bevor Sie sie mithilfe des psql-Hilfsprogramms importieren.

  • Toad Edge. Dabei handelt es sich um dasselbe Hilfsprogramm, das Sie mit MySQL verwenden.

Sichern und Wiederherstellen

Sicherungen und Wiederherstellungen werden in der Regel zum Schutz einer Datenbank vor Notfällen durchgeführt. Eine genaue Kopie der Datenbank wird erstellt und gespeichert. Wenn in einem Notfall die Arbeitskopie zerstört wird, wird die gesicherte Kopie wiederhergestellt, und der normale Betrieb kann fortgesetzt werden.

Bei der Wiederherstellung an einem anderen Speicherort verwenden Sie eine Sicherung, um die gesamte Datenbank zu einem anderen Speicherort wie einer Datenbank in der Cloud zu migrieren.

Wann sollten Sicherung und Wiederherstellung verwendet werden?

Sicherungstools erstellen eine einfache und präzise Kopie der Datenbank. Wenn Sie eine Wiederherstellung in der Clouddatenbank durchführen, erhalten Sie genau dieselben Daten und dasselbe Schema wie im lokalen System. Verwenden Sie Sicherung und Wiederherstellung zum Migrieren einer Datenbank:

  • Wenn Sie eine gesamte Datenbank oder eine Gruppe von Datenbanken in einem Vorgang migrieren möchten.

  • Wenn Sie während der Migration keine Änderungen an den Daten, dem Schema oder anderen Datenbankobjekten vornehmen müssen.

Sie könnten Sicherung und Wiederherstellung zum Durchführen einer Migration in solchen Fällen in Erwägung ziehen:

  • Sie verfügen über ein einzelnes Datenbanksystem, das Sie mit möglichst wenigen Änderungen mit Lift & Shift in die Cloud verschieben möchten.

  • Sie möchten eine schrittweise Migration auf einem System mit mehreren Datenbanken durchführen. Jede Workload wird von einer kompletten Datenbank unterstützt.

Wenn Sie eine Datenbank aus einer Sicherungsdatei an einem Cloudspeicherort wiederherstellen, berücksichtigen Sie, welche Datenmenge über das Netzwerk an die Clouddatenbank gesendet werden muss. Um diese Datenübertragung zu optimieren, kopieren Sie die gesicherte Datenbank auf einen virtuellen Computer in derselben Region wie die Zieldatenbank, und stellen Sie sie von dort wieder her. Diese Wiederherstellung ist schneller als die Verwendung einer lokalen Sicherungsdatei und führt weniger wahrscheinlich zu Konflikten bei der Netzwerkbandbreite.

Planen einer Sicherung und Wiederherstellung in MySQL und MariaDB

Zum Sichern einer Datenbank auf einem lokalen Server verwenden Sie das mysqldump-Tool in der Befehlszeile. Dadurch wird eine SQL-Datei erstellt, die Sie in der Clouddatenbank wiederherstellen, indem Sie sie dem Befehl mysql als Skript übergeben. Wenn Sie ein GUI-Tool bevorzugen, wählen Sie die Anwendung PHPMyAdmin oder MySQL Workbench aus. Diese GUI-Tools können die Daten sichern und wiederherstellen.

Beachten Sie, dass Azure Database for MySQL und Azure Database for MariaDB nur die InnoDB-Engine unterstützen. Konvertieren Sie unbedingt alle Tabellen in InnoDB, bevor Sie die Sicherung ausführen.

Um Kompatibilitätsprobleme zu vermeiden, überprüfen Sie, ob die in der Cloud verwendete Versionsnummer von MySQL oder MariaDB mit der Versionsnummer des lokalen Datenbankservers übereinstimmt. Azure Database for MySQL unterstützt die Versionen 5.6, 5.7 und 8.0. Azure Database for MariaDB unterstützt die Versionen 10.2 und 10.3. Wenn Ihr lokaler Server eine frühere Version verwendet, sollten Sie zunächst auf eine dieser Versionen upgraden und ggf. Probleme lokal beheben, bevor Sie zur Cloud migrieren.

Planen einer Sicherung und Wiederherstellung auf PostgreSQL

Die entsprechenden Befehlszeilentools für Sicherung und Wiederherstellung auf PostgreSQL sind pg_dump und pg_restore. Verwenden Sie Toad Edge als GUI-Tool zum Sichern und Wiederherstellen.

Benutzerdefinierter Anwendungscode

Wenn Ihre Anforderungen an die Datentransformation sehr umfangreich sind, oder Sie eine ungewöhnliche Migration durchführen möchten, sollten Sie ggf. Ihren eigenen benutzerdefinierten Code schreiben, um Daten aus einer lokalen MySQL-, PostgreSQL- oder MariaDB-Datenbank in die Cloud zu verschieben.

Der benutzerdefinierte Code könnte viele Formen annehmen. Ihre Auswahl von Sprache und Framework hängt größtenteils von den Kenntnissen Ihres Entwicklungsteams ab:

  • Aus der Datenbank generierte SQL-Skripts, die geändert oder von Grund auf neu entwickelt wurden.
  • Kompilierter Code aus einem Entwicklungsframework wie .NET oder Java.
  • Skripts in PHP oder Node.js.
  • Shellskripts für Bash oder PowerShell.

Der benutzerdefinierte Codeansatz ermöglicht Ihnen, äußerst flexibel zu sein. Sie passen an, wie Daten gefiltert, aggregiert und transformiert werden, und können zu mehreren Zielen migrieren oder Daten aus mehreren Quellen zusammenführen. Verwenden Sie diesen Ansatz, wenn ein Standardtool zum Sichern oder Exportieren Ihre Anforderungen nicht erfüllen kann.

Dieser Ansatz hat den Nachteil, dass mehr Zeit in die Entwicklung investiert werden muss. Um sicherzustellen, dass der benutzerdefinierte Code alle Daten ordnungsgemäß migriert, muss er ausgiebig getestet werden, bevor er mit realen Daten ausgeführt wird. Diese Aufgabe erfordert ein Team von erfahrenen Entwicklern und Testern und häufig eine Steigerung des Projektbudgets. Wenn Sie in Erwägung ziehen, benutzerdefinierten Migrationscode zu schreiben, sollten Sie den Aufwand an Zeit und Mitteln für die Erstellung zuverlässigen Codes nicht unterschätzen.

Azure Database Migration Service

Azure umfasst einen flexiblen Dienst namens Azure Database Migration Service (DMS), mit dem Sie nahtlose Onlinemigrationen von mehreren Datenquellen zu Azure-Datenplattformen durchführen können. Zu diesen Plattformen zählen Azure Database for MySQL, Azure Database for MariaDB und Azure Database for PostgreSQL.

Erwägen Sie die Verwendung von Azure DMS, wenn Sie eine Onlinedatenbankmigration zu Azure ausführen möchten.

Anfängliche Migration

Um eine Migration mit DMS auszuführen, führen Sie die folgenden Aufgaben aus:

  1. Erstellen Sie in Azure eine neue Zieldatenbank auf der Plattform Ihrer Wahl.
  2. Erstellen eines Migrationsprojekts mithilfe von Azure Database Migration Service (DMS).
  3. Generieren Sie das Schema aus den lokalen Quelldatenbanken. Wenn Sie MySQL verwenden, können Sie ein Schema mit sqldump generieren. Verwenden Sie bei einer PostgreSQL-Quelldatenbankpg_dump.
  4. Erstellen Sie eine leere Datenbank, die als Migrationsziel dient.
  5. Wenden Sie das Schema auf die Zieldatenbank an.
  6. Konfigurieren Sie Verbindungsdetails für die Quell- und Zieldatenbanken in einem DMS-Migrationsprojekt.
  7. Führen Sie das DMS-Migrationsprojekt aus. Das Projekt überträgt die Daten und generiert einen Bericht.
  8. Überprüfen Sie den Bericht, und beheben Sie alle darin identifizierten Probleme.

Onlinemigrationen

Azure DMS ist ein gutes Tool für Onlinemigrationen, bei denen die ursprüngliche Datenbank während der Ausführung der Migration verfügbar bleibt. Benutzer nehmen Änderungen an den Daten weiterhin in der Quelldatenbank vor. Azure DMS synchronisiert diese Änderungen mittels Replikation mit der migrierten Datenbank. Nach Abschluss der Migration konfigurieren Sie die Benutzeranwendungen neu, um eine Verbindung mit der migrierten Datenbank herzustellen.

Migrieren von MySQL oder MariaDB zu Azure SQL-Datenbank

Wenn Sie eine lokal auf einem MySQL-Datenbankserver gehostete Datenbank in die Azure-Cloud verschieben möchten – und die Clouddatenbank nicht zum Ausführen von MySQL benötigen – sollten Sie eine Migration zu Azure SQL-Datenbank in Erwägung ziehen. Azure SQL-Datenbank ist eine PaaS-Implementierung der branchenführenden SQL Server-Datenbankengine von Microsoft. Sie bietet Verfügbarkeit, Skalierbarkeit und Sicherheit auf Unternehmensniveau und ist einfach zu überwachen und zu verwalten.

Wenn der lokale Datenbankserver MariaDB ausführt, können Sie die Migration zu Azure SQL-Datenbank ebenso in Erwägung ziehen. Der Prozess ist sehr ähnlich, da MariaDB ein Fork von MySQL ist.

Azure SQL-Datenbank hat ein größeres Funktionspotenzial als Azure Database for MySQL und Azure Database for MariaDB.

Hinweis

Möglicherweise müssen Sie Anwendungen ändern, die eine Verbindung mit der migrierten Datenbank herstellen, da Azure SQL-Datenbank unterschiedliche Datentypen, andere Datenbankobjekte und eine andere API als MySQL und MariaDB verwendet. Wenden Sie sich an Ihre Entwickler, um zu bestimmen, wie hoch der Arbeitsaufwand ist, um eine Clientanwendung aus einer lokalen MySQL- oder MariaDB-Datenbank in eine Azure SQL-Clouddatenbank zu portieren.

SQL Server Migration Assistant for MySQL

Wenn Sie sich für die Migration von MySQL zu Azure SQL-Datenbank entscheiden, können Sie ein spezielles Tool verwenden: SQL Server Migration Assistant für MySQL. Dieses GUI-Tool stellt eine Verbindung mit einer MySQL-Quelldatenbank und einer SQL Server-Datenbank her, die eine Datenbank im Azure SQL-Datenbankdienst sein kann.

Wenn eine Verbindung besteht, kopiert der Assistent das gesamte Schema in Azure SQL-Datenbank und konvertiert alle Datentypen in ihre SQL Server-Entsprechungen. Außerdem werden Sichten, Prozeduren, Trigger und andere Objekte migriert. Anschließend können Sie mit der Migration der Daten von MySQL zu Azure SQL-Datenbank beginnen.

Hinweis

Der SQL Server Migration Assistant für MySQL ist nicht für die Migration von MariaDB-Datenbanken zu Azure SQL-Datenbank getestet.