Freigeben über


Konfigurieren der ausgehenden Datenreplikation in Azure Database for MySQL – Flexibler Server

In diesem Artikel wird beschrieben, wie Sie die ausgehende Datenreplikation in Azure Database for MySQL – Flexibler Server einrichten, indem Sie Quell- und Replikatserver konfigurieren. In diesem Artikel wird davon ausgegangen, dass Sie über ein gewisses Maß an Erfahrung mit MySQL-Servern und -Datenbanken verfügen.

Bei der ausgehenden Datenreplikation ist die Quelle immer Azure Database for MySQL – Flexibler Server. Das Replikat kann ein beliebiger externer MySQL-Server auf anderen Cloudanbietern, lokalen Computern oder VMs sein. Überprüfen Sie die Einschränkungen und Anforderungen der ausgehenden Datenreplikation, bevor Sie die Schritte in diesem Artikel ausführen.

Hinweis

Dieser Artikel enthält Verweise auf den Begriff „Slave“, einen Begriff, den Microsoft nicht mehr verwendet. Sobald der Begriff aus der Software entfernt wurde, wird er auch aus diesem Artikel entfernt.

Erstellen Sie eine Instanz von Azure Database for MySQL – Flexible Server, die als Quelle verwendet werden soll.

  1. Erstellen Sie eine neue Instanz von Azure Database for MySQL – Flexible Server (z. B. sourceserver.mysql.database.Azure.com). Weitere Informationen finden Sie unter Schnellstart: Erstellen einer Instanz von Azure Database for MySQL mit dem Azure-Portal. Dieser Server dient als „Quelle“ bei der ausgehenden Datenreplikation.

  2. Erstellen Sie duplizierte Benutzerkonten und entsprechende Berechtigungen.

    1. Benutzerkonten werden nicht vom Quellserver auf den Replikatserver repliziert. Angenommen, Sie planen, Benutzern Zugriff auf den Replikatserver zu gewähren. In diesem Fall müssen Sie alle Konten und die entsprechenden Rechte für diese neu erstellte Instanz von Azure Database for MySQL – Flexibler Server manuell erstellen.

Konfigurieren des MySQL-Quellservers

Mit den folgenden Schritten wird die Instanz von Azure Database for MySQL – Flexibler Server, die als Quelle dient, vorbereitet und konfiguriert.

  1. Netzwerkanforderungen

    Stellen Sie sicher, dass Ihre Netzwerkeinstellungen eingerichtet sind, damit Quell- und Replikatserver nahtlos kommunizieren können.
    Wenn der Quellserver öffentlich zugänglich ist, stellen Sie sicher, dass die IP-Adresse des Replikatservers von den Firewallregeln zugelassen wird. Wenn der Replikatserver in Azure gehostet wird, stellen Sie sicher, dass Sie die Option zum Zulassen des öffentlichen Zugriffs von jedem Azure-Dienst über die Netzwerkseite im Azure-Portal auswählen. Wenn der Quellserver privat zugänglich ist, stellen Sie sicher, dass der Replikatserver über VNet-Peering oder eine VPN-Gatewayverbindung von VNet zu VNet eine Verbindung mit der Quelle herstellen kann.

  2. Aktivieren der binären Protokollierung

    Überprüfen Sie, ob die binäre Protokollierung auf der Quelle aktiviert wurde, indem Sie den folgenden Befehl ausführen:

    SHOW VARIABLES LIKE 'log_bin';
    

    Wenn die Variable „log_bin“ mit dem Wert „ON“ zurückgegeben wird, ist die binäre Protokollierung auf Ihrem Server aktiviert.

  3. Erstellen einer neuen Replikationsrolle und Einrichten der Berechtigung

    Erstellen Sie auf dem konfigurierten Quellserver ein Benutzerkonto mit Replikationsberechtigungen. Das können Sie über SQL-Befehle oder ein Tool wie MySQL Workbench tun. Treffen Sie die Entscheidung, ob Sie eine Replikation mit SSL durchführen möchten, da dies bei der Erstellung des Benutzers angegeben werden muss. Wie Ihrem Quellserver Benutzerkonten hinzugefügt werden, erfahren Sie in der MySQL-Dokumentation.

    Bei den folgenden Befehlen kann die neue Replikationsrolle nicht nur von dem Computer, auf dem die Quelle selbst gehostet wird, sondern von jedem Computer aus auf die Quelle zugreifen. Hierfür muss „syncuser@'%'“ im Befehl zum Erstellen von Benutzern angegeben werden. Weitere Informationen zum Festlegen von Kontonamen finden Sie in der MySQL-Dokumentation.

    Es gibt einige Tools, mit denen Sie Kontonamen festlegen können. Wählen Sie dasjenige aus, das Ihrer Umgebung am besten entspricht.

Replikation mit SSL

Um für alle Benutzerverbindungen SSL zu erzwingen, verwenden Sie den folgenden Befehl zum Erstellen eines Benutzers:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;

Replikation ohne SSL

Wenn SSL nicht für alle Verbindungen erforderlich ist, verwenden Sie den folgenden Befehl zum Erstellen eines Benutzers:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';

Sichern und Wiederherstellen des Quellservers

Überspringen Sie diesen Abschnitt, wenn es sich um einen neu erstellten Quellserver ohne vorhandene Daten handelt, die zum Replikat migriert werden müssen. An diesem Punkt können Sie die Tabellen entsperren:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Führen Sie die folgenden Schritte aus, wenn der Quellserver über vorhandene Daten verfügt, die zum Replikat migriert werden sollen.

  1. Legen Sie fest, welche Datenbanken und Tabellen in Azure Database for MySQL Flexible Server repliziert werden sollen, und führen Sie die Sicherung vom Quellserver aus. Mit „mysqldump“ können Sie Datenbanken von Ihrem primären Server sichern. Weitere Informationen finden Sie unter Datensicherung und Wiederherstellung. Die MySQL-Bibliothek und die Testbibliothek müssen nicht gesichert werden.

  2. Versetzen Sie den Quellserver in den Lese-/Schreibmodus.

Ändern Sie nach der Sicherung der Datenbank die Quellinstanz von Azure Database for MySQL – Flexibler Server in den Lese-/Schreibemodus.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Stellen Sie die Sicherungsdatei auf dem neuen Server wieder her. Stellen Sie die Sicherungsdatei auf dem Server wieder her, der in Azure Database for MySQL – Flexibler Server erstellt wurde. Informationen zum Wiederherstellen einer Sicherungsdatei in eine Instanz von Azure Database for MySQL – Flexibler Server finden Sie unter „Datensicherung und Wiederherstellung“. Handelt es sich um eine große Sicherungsdatei, laden Sie sie auf einen virtuellen Computer in Azure in der gleichen Region wie Ihr Replikatserver hoch. Stellen Sie diese von der VM auf dem Server mit Azure Database for MySQL – Flexibler Server wieder her.

Hinweis

Wenn Sie die Datenbank beim Sichern und Wiederherstellen nicht als schreibgeschützt festlegen möchten, können Sie mydumper/myloader verwenden.

Konfigurieren des Replikatservers für den Start der ausgehenden Datenreplikation

  1. Filterung

    Angenommen, die Replikation ausgehender Daten wird zwischen Azure Database for MySQL – Flexibler Server und einem externen MySQL-Server auf anderen Cloudanbietern oder lokal eingerichtet. In diesem Fall müssen Sie den Replikationsfilter verwenden, um benutzerdefinierte Azure-Tabellen auf dem Replikatserver herauszufiltern. Dies kann erreicht werden, indem Replicate_Wild_Ignore_Table = "mysql.__%" festgelegt wird, um die internen MySQL-Tabellen von Azure Database for MySQL – Flexibler Server zu filtern. Weitere Informationen zum Ändern dieses Serverparameters finden Sie unter MySQL :: Referenzhandbuch zu MySQL 5.7 :: 13.4.2.2 Anweisung CHANGE REPLICATION FILTER.

  2. Legen Sie den Replikatserver fest, indem Sie eine Verbindung mit diesem herstellen und die MySQL-Shell auf dem Replikatserver öffnen. Führen Sie an der Eingabeaufforderung den folgenden Vorgang aus, der mehrere MySQL-Replikationseinstellungen gleichzeitig konfiguriert:

    CHANGE THE REPLICATION SOURCE TO
    SOURCE_HOST='<master_host>',
    SOURCE_USER='<master_user>',
    SOURCE_PASSWORD='<master_password>',
    SOURCE_LOG_FILE='<master_log_file>',
    SOURCE_LOG_POS=<master_log_pos>
    
    • master_host: Hostname des Quellservers (Beispiel: 'source.mysql.database.Azure.com')
    • master_user: Benutzername des Quellservers (Beispiel: 'syncuser'@'%')
    • master_password: Kennwort des Quellservers
    • master_log_file: Name der binären Protokolldatei durch Ausführung von „show master status“
    • master_log_pos: Position des binären Protokolls durch Ausführung von show master status

    Hinweis

    Um SSL für die Verbindung zu verwenden, fügen Sie dem Befehl das Attribut SOURCE_SSL=1 hinzu. Weitere Informationen zur Verwendung von SSL in einem Replikationskontext finden Sie unter https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html.

  3. Aktivieren Sie den Replikatserver mit dem folgenden Befehl.

    START REPLICA;
    

    An diesem Punkt beginnt die Replikatinstanz mit der Replikation aller an der Quellserverdatenbank vorgenommenen Änderungen. Sie können dies testen, indem Sie eine Beispieltabelle für Ihre Quelldatenbank erstellen und überprüfen, ob sie erfolgreich repliziert wird.

  4. Überprüfen Sie den Replikationsstatus.

    Rufen Sie den Befehl „show slave status\G“ auf dem Replikatserver auf, um den Replikationsstatus anzuzeigen.

     show slave status;
    

    Wenn der Status von „Slave_IO_Running“ und „Slave_SQL_Running“ yes lautet und der Wert von „Seconds_Behind_Master“ 0 entspricht, funktioniert die Replikation problemlos. Seconds_Behind_Master gibt an, welche Verzögerung das Replikat aufweist. Wenn der Wert nicht 0 lautet, bedeutet dies, dass das Replikat momentan Updates verarbeitet.

    Wenn der Replikatserver auf einer Azure-VM gehostet wird, legen Sie Zugriff auf Azure-Dienste erlauben auf dem Quellserver auf EIN fest, damit Quell- und Replikatserver miteinander kommunizieren können. Diese Einstellung kann über die Optionen für die Verbindungssicherheit geändert werden. Weitere Informationen finden Sie unter Verwalten von Firewallregeln für Azure Database for MySQL – Flexibler Server mithilfe des Azure-Portals.

    Wenn Sie mydumper/myloader zum Sichern der Datenbank verwendet haben, können Sie „master_log_file“ und „master_log_pos“ aus der Datei „/backup/metadata“ abrufen.