Aktivierung der GTID basierten Replikation für bestehende Read Replicas RDS für My SQL - Amazon Relational Database Service

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 basierten Replikation für bestehende Read Replicas RDS für My SQL

Für eine bestehende My SQL DB-Instance mit Read Replicas, die keine basierte Replikation verwendet, können Sie die GTID basierte Replikation zwischen der DB-Instance und den Read Replicas konfigurierenGTID.

Um die GTID basierte Replikation für bestehende Read Replicas zu aktivieren
  1. Wenn die DB-Instance oder eine Read Replica eine 8.0-Version von RDS for My unter 8.0.26 verwendet, aktualisieren Sie die DB-Instance oder das Read Replica auf SQL Version 8.0.26 oder eine höhere My 8.0-Version. SQL Alle Versionen von My 5.7 RDS unterstützen die basierte ReplikationSQL. GTID

    Weitere Informationen finden Sie unter Upgrades der RDS for My SQL DB-Engine.

  2. (Optional) Setzen Sie die GTID Parameter zurück, testen Sie das Verhalten der DB-Instance und lesen Sie Repliken:

    1. Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss den Wert für den Parameter enforce_gtid_consistency auf WARN gesetzt haben.

      Weitere Informationen zum Einstellen von Konfigurationsparametern unter Verwendung von Parametergruppen finden Sie unter Parametergruppen für Amazon RDS.

    2. 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 Neustarten einer DB-Instance.

    3. Führen Sie Ihre DB-Instance und Lesereplikate mit Ihrem normalen Workload aus und überwachen Sie die Protokolldateien.

      Wenn Sie Warnungen zu GTID -inkompatiblen Transaktionen sehen, passen Sie Ihre Anwendung so an, dass sie nur GTID -kompatible Funktionen verwendet. Stellen Sie sicher, dass die DB-Instance keine Warnungen über GTID -inkompatible Transaktionen generiert, bevor Sie mit dem nächsten Schritt fortfahren.

  3. Setzen Sie die GTID Parameter für die GTID basierte Replikation zurück, die anonyme Transaktionen zulässt, bis die Read Replicas alle verarbeitet haben.

    1. Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss die folgenden Parametereinstellungen haben:

      • gtid_modeON_PERMISSIVE

      • enforce_gtid_consistencyON

    2. 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.

  4. Warten Sie, bis alle anonymen Transaktionen abgeschlossen sind. Um zu überprüfen, ob diese repliziert sind, gehen Sie wie folgt vor:

    1. Führen Sie die folgende Anweisung auf Ihrer Quell-DB-Instance aus.

      SHOW MASTER STATUS;

      Notieren Sie die Werte in den Spalten File und Position.

    2. Verwenden Sie bei jedem Lesereplikat die Datei- und Positionsinformationen der Quellinstance 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.000031 lautet und die Position 107 ist.

      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.

  5. Setzen Sie die GTID Parameter nur für die GTID basierte Replikation zurück.

    1. Die Parametergruppe, die der DB-Instance zugeordnet ist, und jedes Lesereplikat muss die folgenden Parametereinstellungen haben:

      • gtid_modeON

      • enforce_gtid_consistencyON

    2. Starten Sie die DB-Instance und jedes Lesereplikat neu.

  6. Führen Sie auf jedem Lesereplikat die folgende Prozedur aus.

    CALL mysql.rds_set_master_auto_position(1);