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.
Aktivierung der GTID-based Replikation für bestehende Read Replicas für RDS for MySQL
Für eine bestehende MySQL-DB-Instance mit Read Replicas, die keine GTID-based Replikation verwendet, können Sie die GTID-based Replikation zwischen der DB-Instance und den Read Replicas konfigurieren.
Um die GTID-based Replikation für bestehende Read Replicas zu aktivieren
-
Wenn die DB-Instance oder eine Read Replica eine 8.0-Version von RDS für MySQL unter 8.0.26 verwendet, aktualisieren Sie die DB-Instance oder Read Replica auf 8.0.26 oder eine höhere MySQL 8.0-Version. Alle RDS for MySQL 8.4- und 5.7-Versionen unterstützen die GTID-based Replikation.
Weitere Informationen finden Sie unter Upgrades der DB-Engine von RDS für MySQL.
-
(Optional) Setzen Sie die GTID-Parameter zurück und testen Sie das Verhalten der DB-Instance und der Lesereplikate:
-
Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss den Wert für den Parameter
enforce_gtid_consistencyaufWARNgesetzt haben.Weitere Informationen zum Einstellen von Konfigurationsparametern unter Verwendung von Parametergruppen finden Sie unter Parametergruppen für Amazon RDS.
-
Wenn Sie die Parametergruppe der DB-Instance geändert haben, müssen Sie die DB-Instance neu starten. Wenn Sie die Parametergruppe des Lesereplikats geändert haben, müssen Sie das Lesereplikat neu starten.
Weitere Informationen finden Sie unter Eine DB-Instance DB-Cluster neu starten.
-
Führen Sie Ihre DB-Instance und Lesereplikate mit Ihrem normalen Workload aus und überwachen Sie die Protokolldateien.
Wenn Sie Warnungen zu GTID-incompatible Transaktionen sehen, passen Sie Ihre Anwendung so an, dass sie nur GTID-compatible Funktionen verwendet. Stellen Sie sicher, dass die DB-Instance keine Warnungen zu GTID-incompatible Transaktionen generiert, bevor Sie mit dem nächsten Schritt fortfahren.
-
-
Setzen Sie die GTID-Parameter für die GTID-based Replikation zurück, die anonyme Transaktionen zulässt, bis die Read Replicas alle verarbeitet haben.
-
Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss die folgenden Parametereinstellungen haben:
-
gtid_mode–ON_PERMISSIVE -
enforce_gtid_consistency–ON
-
-
Wenn Sie die Parametergruppe der DB-Instance geändert haben, müssen Sie die DB-Instance neu starten. Wenn Sie die Parametergruppe des Lesereplikats geändert haben, müssen Sie das Lesereplikat neu starten.
-
-
Warten Sie, bis alle anonymen Transaktionen abgeschlossen sind. Um zu überprüfen, ob diese repliziert sind, gehen Sie wie folgt vor:
-
Führen Sie die folgende Anweisung auf Ihrer Quell-DB-Instance aus.
MySQL 8.4
SHOW BINARY LOG STATUS;MySQL 5.7 und 8.0
SHOW MASTER STATUS;Notieren Sie die Werte in den Spalten
FileundPosition. -
Verwenden Sie bei jedem Lesereplikat die Datei- und Positionsinformationen der Quell-Instance im vorherigen Schritt, um die folgende Abfrage auszuführen.
SELECT MASTER_POS_WAIT('file',position);Führen Sie die folgende Anweisung aus, wenn der Dateiname
mysql-bin-changelog.000031lautet und die Position107ist.SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);Wenn das Lesereplikat über die angegebene Position hinausgeht, wird die Abfrage sofort zurückgegeben. Andernfalls wartet die Funktion. Gehen Sie zum nächsten Schritt über, wenn die Abfrage für alle Lesereplikate zurückgegeben wird.
-
-
Setzen Sie die GTID-Parameter nur für GTID-based die Replikation zurück.
-
Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss die folgenden Parametereinstellungen haben:
-
gtid_mode–ON -
enforce_gtid_consistency–ON
-
-
Starten Sie die DB-Instance und jedes Lesereplikat neu.
-
-
Führen Sie auf jedem Lesereplikat die folgende Prozedur aus.
MySQL 8.4 und höhere Hauptversionen
CALL mysql.rds_set_source_auto_position(1);MySQL 8.0 und niedrigere Hauptversionen
CALL mysql.rds_set_master_auto_position(1);