Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einrichten einer binären Protokollreplikation für Aurora MySQL
Das Einrichten einer MySQL-Replikation mit Aurora MySQL umfasst die folgenden Schritte, die ausführlich erklärt werden:
Inhalt
1. Aktivieren der Binärprotokollierung für die Replikationsquelle
Im Folgenden finden Sie die Anweisungen zum Aktivieren der Binärprotokollierung an der Replikationsquelle für Ihre Datenbank-Engine.
| Datenbank-Engine | Anleitungen |
|---|---|
|
Aurora MySQL |
So aktivieren Sie die Binärprotokollierung für einen Aurora-MySQL-DB-Cluster Legen Sie den Parameter Um den Wenn Sie den Parameter Weitere Informationen erhalten Sie unter Amazon Aurora-DB-Cluster und DB-Instance-Parameter und Parametergruppen für Amazon Aurora. |
|
RDS für MySQL |
So aktivieren Sie die Binärprotokollierung für eine Amazon-RDS-DB-Instance Sie können die Binärprotokollierung nicht direkt für eine Amazon-RDS-DB-Instance aktivieren, aber Sie können diese Funktion aktivieren, indem Sie Folgendes tun:
|
|
MySQL (extern) |
So richten Sie eine verschlüsselte Replikation ein Wenn Sie Daten sicher mit Aurora-MySQL-Version 2 replizieren möchten, verwenden Sie eine verschlüsselte Replikation. AnmerkungWenn Sie keine verschlüsselte Replikation benötigen, können Sie diese Schritte überspringen. Folgende Voraussetzungen gelten für die Verwendung einer verschlüsselten Replikation:
Während der verschlüsselten Replikation dient das Aurora MySQL-DB-Cluster als Client für den MySQL-Datenbankserver. Die Zertifikate und Schlüssel für den Aurora MySQL-Client befinden sich in Dateien im PEM-Format.
So aktivieren Sie die Binärprotokollierung für eine externe MySQL-Datenbank
|
2. Beibehaltung der Binärprotokolle für die Replikationsquelle, bis diese nicht mehr erforderlich sind
Wenn Sie die binäre MySQL-Protokollreplikation verwenden, verwaltet Amazon RDS den Replikationsvorgang nicht. Daher müssen Sie sicherstellen, dass die Binärprotokolldateien an Ihre Replikationsquelle so lange aufbewahrt werden, bis die Änderungen auf das Replica angewandt wurden. Durch diese Pflege können Sie Ihre Quelldatenbank im Fall eines Ausfalls wiederherstellen.
Verwenden Sie folgende Anweisungen zur Beibehaltung von Binärprotokollen für Ihre Datenbank-Engine.
| Datenbank-Engine | Anleitungen |
|---|---|
|
Aurora MySQL |
So bewahren Sie Binärprotokolle für einen Aurora MySQL-DB-Cluster auf Sie haben keinen Zugriff auf die Binärprotokolldateien eines Aurora-MySQL-DB-Clusters. Daher müssen Sie für die Aufbewahrung der Binärprotokolldateien an Ihrer Replikationsquelle ein ausreichend langes Zeitfenster festlegen, um sicherzustellen, dass die Änderungen auf Ihr Replica angewandt wurden, bevor die Binärprotokolldatei von Amazon RDS gelöscht wird. Sie können diese Binärprotokolldateien in einem Aurora MySQL-DB-Cluster für bis zu 90 Tage aufbewahren. Wenn Sie eine Replikation mit einer MySQL-Datenbank oder einer RDS für MySQL-DB-Instance als Replica einrichten und die Datenbank, für die Sie eine Replica erstellen, sehr groß ist, wählen Sie ein großes Zeitfenster, um Binärprotokolldateien aufzubewahren, bis die erste Kopie der Datenbank in der Replica abgeschlossen ist und die Replica-Verzögerung den Wert 0 erreicht hat. Verwenden Sie zur Festlegung der Aufbewahrungszeit für Binärprotokolldateien die Prozedur mysql.rds_set_configuration und legen Sie einen Konfigurationsparameter für Beim folgenden Beispiel wird der Aufbewahrungszeitraum für binäre Protokolle auf 6 Tage festgelegt:
Nachdem die Replikation gestartet wurde, können Sie nach dem Ausführen des Befehls Wenn diese Einstellung nicht angegeben wird, ist der Standardwert für Aurora MySQL 24 (1 Tag). Wenn Sie einen Wert für |
|
RDS für MySQL |
So bewahren Sie Binärprotokolle einer Amazon-RDS-DB-Instance auf Sie können binäre Protokolldateien auf einer Amazon-RDS-DB-Instance aufbewahren, indem Sie die Stundenanzahl für die Aufbewahrung einstellen, so wie es bereits für einen Aurora-MySQL-DB-Cluster im vorherigen Anschnitt erläutert wurde. Sie können auch Binärprotokolldateien für eine Amazon-RDS-DB-Instance aufbewahren, indem Sie ein Lesereplikat von dieser DB-Instance erstellen. Dieses Lesereplikat ist temporär und lediglich dazu gedacht, Binärprotokolldateien aufzubewahren. Nachdem das Lesereplikat erstellt wurde, rufen Sie die Prozedur mysql.rds_stop_replication für das Lesereplikat auf. Während die Replikation angehalten wird, löscht Amazon RDS keine der Binärprotokolldateien für die Replikationsquelle. Nachdem Sie die Replikation mit Ihrem permanenten Replikat eingerichtet haben, können Sie das Read-Replikat löschen, sobald die Replikat-Verzögerung (Feld |
|
MySQL (extern) |
So bewahren Sie Binärprotokolle in einer externen MySQL-Datenbank Da die Binärprotokolldateien in einer externen MySQL-Datenbank nicht von Amazon RDS verwaltet werden, werden diese aufbewahrt, bis Sie sie selbst löschen. Nachdem die Replikation gestartet wurde, können Sie nach dem Ausführen des Befehls |
3. Erstellen einer Kopie oder eines Dumps Ihrer Replikationsquelle
Sie verwenden einen Snapshot, Klon oder Dump Ihrer Replikationsquelle, um die Baseline-Kopie Ihrer Daten in Ihr Replikat zu kopieren. Dann starten Sie die Replikation ab diesem Punkt.
Verwenden Sie folgende Anleitungen zum Erstellen einer Kopie oder eines Dumps der Replikationsquelle für Ihre Datenbank-Engine.
| Datenbank-Engine | Anleitungen |
|---|---|
|
Aurora MySQL |
So erstellen Sie eine Kopie eines DB-Clusters von Aurora MySQL Verwenden Sie eine der folgenden Methoden:
So bestimmen Sie den Namen und die Position der Binlog-Datei Verwenden Sie eine der folgenden Methoden:
So erstellen Sie einen Dump eines DB-Clusters von Aurora MySQL Wenn Ihr Replikatziel eine externe MySQL-Datenbank oder eine DB-Instance von RDS für MySQL ist, müssen Sie eine Dump-Datei aus dem Aurora-DB-Cluster erstellen. Stellen Sie sicher, dass der Befehl
|
|
RDS für MySQL |
So erstellen Sie einen Snapshot Ihrer Amazon-RDS-DB-Instance Erstellen Sie ein Lesereplikat Ihrer Amazon-RDS-DB-Instance. Weitere Informationen finden Sie unter Erstellen einer Read Replica im Amazon Relational Database Service-Benutzerhandbuch.
|
|
MySQL (extern) |
So erstellen Sie einen Dump einer externen MySQL-Datenbank
|
4. Laden des Dumps in das Replikatziel (falls erforderlich)
Wenn Sie Daten aus einem Dump einer Amazon-RDS-externen MySQL-Datenbank laden möchten, können Sie eine EC2-Instance erstellen, um die Dump-Dateien dorthin zu kopieren. Anschließend können Sie die Daten aus dieser EC2-Instance in den DB-Cluster oder die DB-Instance laden. Bei Verwendung dieses Ansatzes können Sie die Dumpdateien komprimieren, bevor Sie sie in eine EC2-Instance kopieren, um Netzwerkkosten zu minimieren, die in Verbindung mit dem Kopieren von Dateien nach Amazon RDS entstehen. Sie können die Dumpdatei oder -dateien auch verschlüsseln, um sie beim Übermitteln im Netzwerk zu schützen.
Anmerkung
Wenn Sie einen neuen DB-Cluster von Aurora MySQL als Replikatziel erstellen, müssen Sie keine Dump-Datei laden:
-
Sie können aus einem DB-Cluster-Snapshot wiederherstellen, um einen neuen DB-Cluster zu erstellen. Weitere Informationen finden Sie unter Wiederherstellen aus einem DB-Cluster-Snapshot.
-
Sie können Ihren Quell-DB-Cluster klonen, um einen neuen DB-Cluster zu erstellen. Weitere Informationen finden Sie unter Klonen eines Volumes für einen Amazon-Aurora-DB-Cluster.
-
Sie können die Daten aus einem DB-Instance-Snapshot zu einem neuen DB-Cluster migrieren. Weitere Informationen finden Sie unter Migrieren von Daten zu einem Amazon Aurora MySQL-DB-Cluster.
Verwenden Sie folgende Anleitungen, um den Dump Ihrer Replikationsquelle in das Replikatziel für Ihre Datenbank-Engine zu laden.
| Datenbank-Engine | Anleitungen |
|---|---|
|
Aurora MySQL |
So laden Sie einen Dump in einen DB-Cluster von Aurora MySQL
|
|
RDS für MySQL |
So laden Sie einen Dump in eine DB-Instance von Amazon RDS
|
|
MySQL (extern) |
So laden Sie einen Dump in eine externe MySQL-Datenbank Sie können keinen DB-Snapshot oder DB-Cluster-Snapshot in eine externe MySQL-Datenbank laden. Stattdessen müssen Sie die Ausgabe des
|
5. Erstellen Sie einen Replikationsbenutzer auf Ihrer Replikationsquelle
Erstellen Sie eine Benutzer-ID an der Quelle, die ausschließlich für die Replikation verwendet wird. Das folgende Beispiel bezieht sich auf RDS für MySQL oder externe MySQL-Quelldatenbanken.
mysql>CREATE USER 'repl_user'@'domain_name' IDENTIFIED BY 'password';
Für Aurora-MySQL-Quelldatenbanken ist der DB-Cluster-Parameter skip_name_resolve auf 1 (ON) gesetzt und kann nicht geändert werden. Sie müssen also eine IP-Adresse für den Host anstelle eines Domainnamens verwenden. Weitere Informationen finden Sie unter skip_name_resolve
mysql>CREATE USER 'repl_user'@'IP_address' IDENTIFIED BY 'password';
Der Benutzer benötigt die Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE. Gewähren Sie dem Benutzer diese Berechtigungen.
Wenn die Replikation verschlüsselt durchgeführt werden muss, fordern Sie für den Replikationsbenutzer eine SSL-Verbindung an. Sie können beispielsweise mit einer der folgenden Anweisungen SSL-Verbindungen für das Benutzerkonto repl_user erforderlich machen.
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'IP_address';
GRANT USAGE ON *.* TO 'repl_user'@'IP_address' REQUIRE SSL;
Anmerkung
Wenn REQUIRE SSL nicht angegeben wird, kann die Replikationsverbindung ohne entsprechende Meldung auf eine unverschlüsselte Verbindung zurückgesetzt werden.
6. Aktivieren der Replikation für das Replikat-Ziel
Bevor Sie die Replikation aktivieren, empfehlen wir, manuell einen Snapshot des Aurora-MySQL-DB-Clusters oder des RDS für MySQL-DB-Instance Replica-Ziels zu erstellen. Wenn ein Problem auftritt und Sie den Replikationsvorgang mit dem DB-Cluster oder dem DB-Instance-Replica-Ziel wieder einrichten müssen, können Sie das DB-Cluster bzw. die DB-Instance aus diesem Snapshot wiederherstellen, anstatt erneut Daten in das Replica-Ziel zu importieren.
Verwenden Sie folgende Anweisungen zum Aktivieren der Replikation für Ihre Datenbank-Engine.
| Datenbank-Engine | Anleitungen |
|---|---|
|
Aurora MySQL |
So aktivieren Sie die Replikation aus einem Aurora-MySQL-DB-Cluster
Zur Verwendung der SSL-Verschlüsselung legen Sie den endgültigen Wert auf |
|
RDS für MySQL |
So aktivieren Sie die Replikation aus einer Amazon-RDS-DB-Instance
Zur Verwendung der SSL-Verschlüsselung legen Sie den endgültigen Wert auf |
|
MySQL (extern) |
So aktivieren Sie die Replikation aus einer externen MySQL-Datenbank
|
Wenn die Replikation fehlschlägt, kann dies zu einem starken Anstieg der unbeabsichtigten I/O auf dem Replikat führen, was die Leistung beeinträchtigen kann. Wenn die Replikation fehlschlägt oder nicht mehr benötigt wird, können Sie das gespeicherte Verfahren mysql.rds_reset_external_master (Aurora-MySQL-Version 2) oder mysql.rds_reset_external_source (Aurora-MySQL-Version 3) zum Entfernen der Replikationskonfiguration durchführen.
Festlegen einer Position zum Stoppen der Replikation zu einer Read Replica
In der Aurora MySQL-Version 3.04 und höher können Sie die Replikation starten und dann an einem bestimmten Ort in der Binär-Protokolldatei mit der gespeicherten mysql.rds_start_replication_until (Aurora-MySQL-Version 3)-Prozedur anhalten.
Starten Sie die Replikation für ein Lesereplikat und stoppen Sie die Replikation an einer bestimmten Position wie folgt:
-
Verwenden Sie einen MySQL-Client, um als Master-Benutzer eine Verbindung zum Replikat-DB-Cluster von Aurora MySQL herzustellen.
-
Führen Sie die gespeicherte Prozedur mysql.rds_start_replication_until (Aurora-MySQL-Version 3) aus.
Das folgende Beispiel initiiert die Replikation und repliziert die Änderungen, bis die Position
120in der Binärprotokolldateimysql-bin-changelog.000777erreicht wird. Beispiel: In einem Szenario der Notfallwiederherstellung liegt die Position120unmittelbar vor der Katastrophe.call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);
Die Replikation stoppt automatisch, sobald der Stopppunkt erreicht ist. Das folgende RDS-Ereignis wird generiert: Replication has been stopped since the replica reached the stop point specified by the
rds_start_replication_until stored procedure.
Wenn Sie die GTID-basierte Replikation verwenden, nutzen Sie die gespeicherte Prozedur mysql.rds_start_replication_until_gtid (Aurora-MySQL-Version 3) anstelle der gespeicherten Prozedur mysql.rds_start_replication_until (Aurora-MySQL-Version 3). Weitere Informationen zu GTID-basierten Replikationen finden Sie unter Verwenden der GTID-basierten Replikation.
7. Überwachen Ihres Replikats
Wenn Sie eine MySQL-Replikation mit einem Aurora MySQL-DB-Cluster eingerichtet haben, müssen Sie Failover-Ereignisse für den Aurora MySQL-DB-Cluster überwachen, wenn dieser ein Replica-Ziel ist. Im Falle eines Failovers kann dann das DB-Cluster (das Replica-Ziel) auf einem neuen Host mit einer anderen Netzwerkadresse erneut erstellt werden. Weitere Informationen zum Überwachen von Failover-Ereignissen finden Sie unter Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen.
Sie können außerdem überwachen, wie weit das Replica-Ziel hinter der Replikationsquelle zurückliegt, indem Sie eine Verbindung zum Replica-Ziel herstellen und den Befehl SHOW SLAVE STATUS (Aurora-MySQL-Version 2) oder SHOW REPLICA STATUS (Aurora-MySQL-Version 3) ausführen. In der Befehlsausgabe wird im Feld Seconds Behind Master angezeigt, wie weit das Replica-Ziel hinter der Quelle zurückliegt.
Wichtig
Wenn Sie Ihren DB-Cluster aktualisieren und eine benutzerdefinierte Parametergruppe angeben, müssen Sie den Cluster nach Abschluss des Upgrades unbedingt manuell neu starten. Dadurch verwendet der Cluster Ihre neuen benutzerdefinierten Parametereinstellungen und die Binlog-Replikation wird neu gestartet.
Synchronisierung von Passwörtern zwischen Replikationsquelle und -ziel
Wenn Sie Benutzerkonten und Kennwörter auf der Replikationsquelle mithilfe von SQL-Anweisungen ändern, werden diese Änderungen automatisch auf das Replikationsziel repliziert.
Wenn Sie die AWS Management Console, die AWS CLI oder die RDS-API verwenden, um das Hauptkennwort auf der Replikationsquelle zu ändern, werden diese Änderungen nicht automatisch auf das Replikationsziel repliziert. Wenn Sie den Master-Benutzer und das Master-Kennwort zwischen dem Quell- und dem Zielsystem synchronisieren möchten, müssen Sie die gleiche Änderung auf dem Replikationsziel selbst vornehmen.