Freigeben über


Migrieren großer Datenbanken zu Azure Database for MySQL mit „mydumper“/„myloader“

Azure Database for MySQL ist ein verwalteter Dienst, mit dem Sie hochverfügbare MySQL-Datenbanken in der Cloud ausführen, verwalten und skalieren können. Um MySQL-Datenbanken, die größer als 1 TB sind, zu Azure Database for MySQL zu migrieren, sollten Sie Communitytools wie mydumper/myloader verwenden, die die folgenden Vorteile bieten:

  • Parallelität, um die Migrationszeit zu verkürzen.
  • Bessere Leistung, indem aufwändige Routinen für die Zeichensatzkonvertierung vermieden werden.
  • Ein Ausgabeformat mit separaten Dateien für Tabellen, Metadaten usw., wodurch das Anzeigen/Analysieren von Daten vereinfacht wird. Konsistenz, indem Momentaufnahmen über alle Threads hinweg verwaltet werden.
  • Genaue Primär- und Replikatprotokollpositionen.
  • Einfache Verwaltung, da sie Perl Compatible Regular Expressions (PCRE) zum Angeben von Ein- und Ausschlüssen für Datenbanken und Tabellen unterstützen.
  • Schema und Daten werden zusammengeführt. Sie müssen nicht separat wie andere logische Migrationstools behandelt werden.

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine MySQL-Datenbank mit „mydumper“/„myloader“ installieren, sichern und wiederherstellen.

Voraussetzungen

Bevor Sie mit dem Migrieren Ihrer MySQL-Datenbank zu SQL Server beginnen, führen Sie folgende Schritte aus:

  1. Erstellen Sie einen Server für Azure Database for MySQL über das Azure-Portal.

  2. Erstellen Sie eine Azure-VM unter Linux über das Azure-Portal (vorzugsweise Ubuntu).

    Hinweis

    Berücksichtigen Sie vor der Installation der Tools die folgenden Punkte:

    • Wenn es sich um eine lokale Quelle mit einer Verbindung mit hoher Bandbreite zu Azure (mithilfe von ExpressRoute) handelt, können Sie das Tool auf einer Azure-VM installieren.
    • Wenn Sie Probleme mit der Bandbreite zwischen Quelle und Ziel haben, sollten Sie „mydumper“ in der Nähe der Quelle und „myloader“ in der Nähe des Zielservers installieren. Sie können Azcopy verwenden, um die Daten von lokalen oder anderen Cloudlösungen nach Azure zu verschieben.
  3. Installieren Sie den mysql-Client, und gehen Sie folgendermaßen vor:

  • Aktualisieren Sie den Paketindex auf dem virtuellen Azure-Computer unter Linux, indem Sie den folgenden Befehl ausführen:
sudo apt update
  • Installieren Sie das mysql-Clientpaket, indem Sie den folgenden Befehl ausführen:
sudo apt install mysql-client

Installieren von mydumper/myloader

Gehen Sie folgendermaßen vor, um „mydumper“/„myloader“ zu installieren.

  1. Laden Sie je nach Betriebssystemverteilung das entsprechende Paket für mydumper/myloader herunter, und führen Sie den folgenden Befehl aus:

    wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Hinweis

    $(lsb_release -cs): Hilft bei der Identifizierung Ihrer Distribution.

  2. Führen Sie den folgenden Befehl aus, um das DEB-Paket für „mydumper“ zu installieren:

    sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Tipp

    Der Befehl, den Sie zum Installieren des Pakets verwenden, unterscheidet sich abhängig von der Linux-Distribution, über die Sie verfügen, da sich die Installationsprogramme unterscheiden. „mydumper“/„myloader“ ist für die folgenden Distributionen verfügbar: Fedora, RedHat, Ubuntu, Debian, openSUSE und MacOSX. Weitere Informationen finden Sie unter Installieren von mydumper .

Erstellen einer Sicherung mit mydumper

  • Führen Sie den folgenden Befehl aus, um eine Sicherung mit mydumper zu erstellen:

    mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl  --regex '^(<Db_name>\.)' -L mydumper-logs.txt
    

Dieser Befehl verwendet die folgenden Variablen:

  • -host: Der Host, mit dem eine Verbindung hergestellt werden soll.

  • -user: Der Benutzername mit den erforderlichen Berechtigungen.

  • -password: Das Benutzerkennwort.

  • -rows: Versuchen Sie, Tabellen in Blöcke mit so vielen Zeilen aufzuteilen.

  • -outputdir: Das Verzeichnis, in das die Ausgabedateien gespeichert werden.

  • -regex: Regulärer Ausdruck für den Datenbankabgleich.

  • -trx-consistency-only: Nur Transaktionskonsistenz.

  • -threads: Die Anzahl der zu verwendenden Threads, Standardwert ist 4. Es wird empfohlen, einen Wert zu verwenden, der dem Zweifachen der virtuellen Kerne des Computers entspricht.

    Hinweis

    Führen Sie den folgenden Befehl aus, um weitere Informationen zu anderen Optionen zu erhalten, die Sie mit „mydumper“ verwenden können: mydumper --help. Weitere Informationen finden Sie in der Dokumentation zu mydumper\myloader.
    Um mehrere Datenbanken parallel zu sichern, können Sie die regex-Variable modifizieren, wie im Beispiel gezeigt: regex ’^(DbName1.|DbName2.)

Wiederherstellen Ihrer Datenbank mithilfe von myloader

  • Führen Sie den folgenden Befehl aus, um die Datenbank wiederherzustellen, die Sie mit „mydumper“ gesichert haben:

    myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
    

Dieser Befehl verwendet die folgenden Variablen:

  • -host: Der Host, mit dem eine Verbindung hergestellt werden soll.
  • -user: Der Benutzername mit den erforderlichen Berechtigungen.
  • -password: Das Benutzerkennwort.
  • -directory: Der Speicherort, an dem die Sicherung gespeichert wird.
  • -queries-per-transaction: Es wird empfohlen, keinen Wert über 500 zu verwenden.
  • -threads: Die Anzahl der zu verwendenden Threads, Standardwert ist 4. Es wird empfohlen, einen Wert zu verwenden, der dem Zweifachen der virtuellen Kerne des Computers entspricht.

Tipp

Führen Sie den folgenden Befehl aus, um weitere Informationen zu anderen Optionen zu erhalten, die Sie mit „myloader“ verwenden können: myloader --help.

Nach der Wiederherstellung der Datenbank wird immer empfohlen, die Datenkonsistenz zwischen der Quell- und der Zieldatenbank zu überprüfen.

Hinweis

Senden Sie uns here Probleme oder Feedback zu den Tools „mydumper“/„myloader“.