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

GILT FÜR: Azure Database for MySQL – Flexible Server

In diesem Artikel wird beschrieben, wie Sie die Datenausgangsreplikation in azure Database for MySQL flexiblen Server einrichten, indem Sie die 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 Datenausgangsreplikation ist die Quelle immer Azure-Datenbank für mySQL flexible 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 Azure-Datenbank für eine flexible Serverinstanz für MySQL, die als Quelle verwendet werden soll.

  1. Erstellen Sie eine neue Instanz von Azure Database für mySQL flexiblen Server (z. B. sourceserver.mysql.database.Azure.com). Weitere Informationen finden Sie unter Erstellen einer azure-Datenbank für mySQL flexible Serverinstanzen mithilfe der Azure-Portal für die Servererstellung. 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 manuell alle Konten und entsprechenden Berechtigungen für diese neu erstellte Azure-Datenbank für die flexible Serverinstanz von MySQL erstellen.

Konfigurieren des MySQL-Quellservers

In den folgenden Schritten wird die Azure-Datenbank für die flexible Serverinstanz von MySQL vorbereitet und konfiguriert, die als Quelle fungiert.

  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. Bestimmen Sie, welche Datenbanken und Tabellen Sie in Azure Database for MySQL flexiblen Server replizieren möchten, und führen Sie das Dump vom Quellserver aus. Mit „mysqldump“ können Sie Datenbanken von Ihrem primären Server sichern. Weitere Details finden Sie unter Dump & Restore. Die MySQL-Bibliothek und die Testbibliothek müssen nicht gesichert werden.

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

Ändern Sie nach dem Dumping der Datenbank die Azure-Quelldatenbank für die flexible Serverinstanz von MySQL in den Lese-/Schreibmodus.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Stellen Sie die Sicherungsdatei auf dem neuen Server wieder her. Stellen Sie die Speicherabbilddatei auf dem Server wieder her, der in der Azure-Datenbank für mySQL flexiblen Server erstellt wurde. Informationen zum Wiederherstellen einer Speicherabbilddatei in einer azure-Datenbank für flexible Serverinstanz mySQL finden Sie unter "Dump & Restore". 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 sie aus dem virtuellen Computer in der Azure-Datenbank für MySQL flexible Serverinstanz 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 Datenausgangsreplikation wird zwischen der Azure-Datenbank für MySQL flexiblen Server und einer externen MySQL 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 sie Replicate_Wild_Ignore_Table = "mysql.__%" festlegen, um die Azure-Datenbank für mySQL flexible Server mysql interne Tabellen 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 – Flexible Server im Azure-Portal.

    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.

Nächster Schritt