Konfigurieren der verzögerten Replikation mit MySQL - 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.

Konfigurieren der verzögerten Replikation mit MySQL

Sie können die verzögerte Replikation als Strategie für die Notfallwiederherstellung einsetzen. Für die verzögerte Replikation geben Sie die Mindestanzahl von Sekunden an, um welche die Replikation von der Quelle in das Lesereplikat verzögert werden soll. Wenn es zu einem Notfall kommt, weil beispielsweise eine Tabelle versehentlich gelöscht wurde, können Sie das Problem mit den folgenden Schritten schnell beheben:

  • Beenden Sie die Replikation im Lesereplikat, bevor die Änderung, die den Notfall verursacht hat, an das Lesereplikat gesendet wird.

    Verwenden Sie die gespeicherte Prozedur mysql.rds_stop_replication, um die Replikation zu stoppen.

  • Starten Sie die Replikation und geben Sie an, dass die Replikation automatisch an einer bestimmten Position in der Protokolldatei stoppen soll.

    Mit der gespeicherten Prozedur mysql.rds_start_replication_until geben Sie eine Position unmittelbar vor Eintreten des Notfalls an.

  • Stufen Sie das Lesereplikat zur neuen Quell-DB-Instance hoch, indem Sie der Anleitung unter folge Hochstufen eines Lesereplikats zur eigenständigen DB-Instance.

Anmerkung
  • Unter RDS für MySQL 8.4 wird die verzögerte Replikation für MySQL ab 8.4.3 unterstützt. In RDS für MySQL 8.0 wird die verzögerte Replikation für MySQL ab 8.0.28 unterstützt. Unter RDS für MySQL 5.7 wird die verzögerte Replikation für MySQL ab 5.7.44 unterstützt.

  • Verwenden Sie gespeicherte Prozeduren, um die verzögerte Replikation zu konfigurieren. Sie können die verzögerte Replikation nicht mit der AWS-Managementkonsole, der AWS CLI oder der Amazon-RDS-API konfigurieren.

  • Sie können die Replikation basierend auf globalen Transaktionskennungen (GTIDs) in einer Konfiguration mit verzögerter Replikation für folgende Versionen verwenden:

    • RDS für MySQL Version 5.7.44 und höhere 5.7-Versionen

    • RDS für MySQL Version 8.0.28 und höhere 8.0-Versionen

    • RDS für MySQL Version 8.4.3 und höhere 8.4-Versionen

    Wenn Sie die GTID-basierte Replikation verwenden, nutzen Sie die gespeicherte Prozedur mysql.rds_start_replication_until_gtid anstelle der gespeicherten Prozedur mysql.rds_start_replication_until. Weitere Informationen zu GTID-basierten Replikationen finden Sie unter Verwenden der GTID-basierten Replikation.

Konfigurieren der verzögerten Replikation während der Erstellung von Read Replicas

Um die verzögerte Replikation für zukünftig aus einer DB-Instance erstellte Lesereplikate zu konfigurieren, führen Sie die gespeicherte Prozedur mysql.rds_set_configuration mit dem Parameter target delay aus.

Konfigurieren Sie die verzögerte Replikation während der Lesereplikat-Erstellung wie folgt:
  1. Stellen Sie als Master-Benutzer mit einem MySQL-Client eine Verbindung zu der MySQL-DB-Instance her, die als Quelle für Lesereplikate verwendet werden soll.

  2. Führen Sie die gespeicherte Prozedur mysql.rds_set_configuration mit dem Parameter target delay aus.

    Führen Sie beispielsweise die folgende gespeicherte Prozedur aus, um anzugeben, dass die Replikation um mindestens eine Stunde (3.600 Sekunden) für jedes Lesereplikat verzögert werden soll, das aus der aktuellen DB-Instance erstellt wird.

    call mysql.rds_set_configuration('target delay', 3600);
    Anmerkung

    Nach dem Ausführen dieser gespeicherten Prozedur wird jedes Lesereplikat, das Sie mit der AWS CLI oder der Amazon-RDS-API erstellen, mit einer um die angegebene Anzahl Sekunden verzögerten Replikation konfiguriert.

Ändern der verzögerten Replikation einer vorhandenen Read Replica

Führen Sie die gespeicherte Prozedur mysql.rds_set_source_delay aus, um die verzögerte Replikation eines vorhandenen Lesereplikats zu ändern.

Ändern Sie die verzögerte Replikation eines existierenden Lesereplikats wie folgt:
  1. Verwenden Sie einen MySQL-Client, um als Master-Benutzer eine Verbindung zum Lesereplikat herzustellen.

  2. Verwenden Sie die gespeicherte Prozedur mysql.rds_stop_replication, um die Replikation zu stoppen.

  3. Führen Sie die gespeicherte Prozedur mysql.rds_set_source_delay aus.

    Führen Sie beispielsweise die folgende gespeicherte Prozedur aus, um anzugeben, dass die Replikation für das Lesereplikat um mindestens eine Stunde (3600 Sekunden) verzögert werden soll.

    call mysql.rds_set_source_delay(3600);
  4. Verwenden Sie die gespeicherte Prozedur mysql.rds_start_replication, um die Replikation zu starten.

Festlegen einer Position zum Stoppen der Replikation zu einer Read Replica

Nachdem Sie die Replikation für ein Lesereplikat gestoppt haben, können Sie die Replikation mit der gespeicherten Prozedur mysql.rds_start_replication_until starten und dann an einer angegebenen Position in der Binärprotokolldatei stoppen lassen.

Starten Sie die Replikation für ein Lesereplikat und stoppen Sie die Replikation an einer bestimmten Position wie folgt:
  1. Verwenden Sie einen MySQL-Client, um als Masterbenutzer eine Verbindung zur MySQL-DB-Instance herzustellen.

  2. Führen Sie die gespeicherte Prozedur mysql.rds_start_replication_until aus.

    Das folgende Beispiel initiiert die Replikation und repliziert die Änderungen, bis die Position 120 in der Binärprotokolldatei mysql-bin-changelog.000777 erreicht wird. Beispiel: In einem Szenario der Notfallwiederherstellung liegt die Position 120 unmittelbar 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.

Hochstufen eines Lesereplikats

Nachdem die Replikation gestoppt wurde, können Sie in einem Szenario der Notfallwiederherstellung ein Lesereplikat zur neuen Quell-DB-Instance hochstufen. Weitere Informationen zum Hochstufen eines Lesereplikats finden Sie unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance.