Überwachen der Lesereplikation - 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.

Überwachen der Lesereplikation

Es gibt mehrere Arten, den Status eines Lesereplikats zu überwachen. Die RDS Amazon-Konsole zeigt den Status einer Read Replica im Abschnitt Replikation der Registerkarte Konnektivität und Sicherheit in den Read Replica-Details an. Um die Details für eine Read Replica anzuzeigen, wählen Sie den Namen der Read Replica in der Liste der DB-Instances in der RDS Amazon-Konsole aus.

Lesereplikatsstatus

Sie können den Status einer Read Replica auch mithilfe des AWS CLI describe-db-instances Befehls oder der RDS API DescribeDBInstances Amazon-Operation anzeigen.

Der Status eines Lesereplikats kann einer der folgenden sein:

  • replicating (replizierend)– Das Lesereplikat wird erfolgreich repliziert.

  • Replikation herabgestuft (SQLnur SQL Server und Postgre) — Replikate empfangen Daten von der primären Instance, aber eine oder mehrere Datenbanken erhalten möglicherweise keine Updates. Dies kann beispielsweise auftreten, wenn ein Replikat gerade neu erstellte Datenbanken einrichtet. Es kann auch vorkommen, wenn in der blauen Umgebung einer blauen/grünen Bereitstellung Änderungen an großen Objekten vorgenommen werden, die nicht unterstützt DDL werden.

    Der Status wechselt nicht von replication degraded zu error, es sei denn, während des beeinträchtigten Zustands tritt ein Fehler auf.

  • error (Fehler) – Während des Replikationsvorgangs ist ein Fehler aufgetreten. Überprüfen Sie das Feld Replikationsfehler in der RDS Amazon-Konsole oder im Ereignisprotokoll, um den genauen Fehler zu ermitteln. Weitere Informationen über Fehlerbehebung eines Replikationsfehlers finden Sie unter Behebung eines My SQL Read Replica-Problems.

  • beendet (SQLnur MariaDBSQL, My oder Postgre) — Die Replikation ist beendet. Dies tritt auf, wenn die Replikation für mehr als 30 aufeinanderfolgende Tage entweder manuell oder aufgrund eines Replikationsfehlers angehalten wurde. In diesem Fall RDS beendet Amazon die Replikation zwischen der primären DB-Instance und allen Read Replicas. Amazon RDS tut dies, um erhöhte Speicheranforderungen auf der Quell-DB-Instance und lange Failover-Zeiten zu verhindern.

    Unterbrochene Replikation kann sich auf den Speicher auswirken, da die Protokolle aufgrund des hohen Volumens an Fehlermeldungen, die in das Protokoll geschrieben werden, an Größe und Anzahl zunehmen können. Eine unterbrochene Replikation kann sich auch auf die Wiederherstellung nach einem Ausfall auswirken, da Amazon Zeit RDS benötigt, um die große Anzahl von Protokollen während der Wiederherstellung zu verwalten und zu verarbeiten.

  • terminated (beendet) (nur Oracle) – Die Replikation wurde beendet. Dies tritt auf, wenn die Replikation länger als 8 Stunden angehalten wurde, weil auf dem Lesereplikat nicht mehr genügend Speicherplatz vorhanden ist. In diesem Fall RDS beendet Amazon die Replikation zwischen der primären DB-Instance und der betroffenen Read Replica. Dieser Status ist ein Terminalstatus und das Lesereplikat muss neu erstellt werden.

  • gestoppt (MariaDB oder My SQL only) — Die Replikation wurde aufgrund einer vom Kunden initiierten Anfrage gestoppt.

  • Replikationsstopp gesetzt (SQLnur My) — Ein vom Kunden initiierter Stoppoint wurde mithilfe der gespeicherten Prozedur festgelegt, und die Replikation wird gerade ausgeführt.

  • Replikationsstopp erreicht (SQLnur mein) — Ein vom Kunden initiierter Stoppoint wurde mithilfe der gespeicherten Prozedur festgelegt, und die Replikation wird gestoppt, weil der Stopp erreicht wurde.

Sie können sehen, wo eine DB-Instance repliziert wird, und wenn ja, ihren Replizierungsstatus überprüfen. Auf der Seite Datenbanken in der RDS Konsole wird Primary in der Spalte Rolle angezeigt. Wählen Sie seinen DB-Instance-Namen. Auf der Detailseite auf der Registerkarte Connectivity & Security befindet sich der Replikationsstatus unter Replikation.

Überwachen einer Replikationsverzögerung

Sie können die Replikationsverzögerung in Amazon überwachen, CloudWatch indem Sie sich die RDS ReplicaLag Amazon-Metrik ansehen.

Für MariaDB und My SQL meldet die ReplicaLag Metrik den Wert des Seconds_Behind_Master Feldes des SHOW REPLICA STATUS Befehls. Häufige Ursachen für Replikationsverzögerungen für My SQL und MariaDB sind die folgenden:

  • Ein Netzwerkausfall.

  • Schreibvorgänge auf Tabellen mit Indizes auf einem Lesereplikat. Wenn der Parameter read_only im Lesereplikat nicht auf 0 gesetzt ist, kann es die Replikation unterbrechen.

  • Verwenden einer nicht transaktionalen Speicher-Engine wie My. ISAM Die Replikation wird nur für die InnoDB-Speicher-Engine auf My SQL und die XtraDB-Speicher-Engine auf MariaDB unterstützt.

Anmerkung

Frühere Versionen von MariaDB und My SQL wurden SHOW SLAVE STATUS stattdessen verwendet. SHOW REPLICA STATUS Wenn Sie eine MariaDB-Version vor 10.5 oder eine Meine SQL Version vor 8.0.23 verwenden, verwenden Sie. SHOW SLAVE STATUS

Wenn die Metrik ReplicaLag den Wert 0 erreicht, hat das Replikat den Stand der primären DB-Instance erreicht. Wenn die ReplicaLag-Metrik -1 zurückgibt, ist die Replikation aktuell nicht aktiv. ReplicaLag = -1 ist gleich Seconds_Behind_Master = NULL.

Für Oracle ist die Metrik ReplicaLag die Summe des Apply Lag-Wertes und der Differenz zwischen der aktuellen Zeit und dem DATUM_TIME-Wert der zeitlichen Verzögerung. Der DATUM_TIME-Wert ist der Zeitpunkt, an dem das Lesereplikat zuletzt Daten von seiner Quell-DB-Instance erhalten hat. Weitere Informationen finden Sie unter V$ DATAGUARD _ STATS in der Oracle-Dokumentation.

Für SQL Server ist die ReplicaLag Metrik die maximale Verzögerung von Datenbanken, die zurückgefallen sind, in Sekunden. Wenn Sie beispielsweise zwei Datenbanken haben, die eine Verzögerung von 5 bzw. 10 Sekunden aufweisen, dann beträgt ReplicaLag 10 Sekunden. Die ReplicaLag-Metrik gibt den Wert der folgenden Abfrage zurück.

SELECT MAX(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;

Weitere Informationen finden Sie unter secondary_lag_seconds in der Microsoft-Dokumentation.

ReplicaLaggibt zurück, -1 wenn die Verzögerung nicht bestimmt werden RDS kann, z. B. bei der Einrichtung des Replikats oder wenn sich das Read Replica im error Status befindet.

Anmerkung

Neue Datenbanken werden erst dann in die Verzögerungsberechnung einbezogen, wenn auf dem Lesereplikat auf sie zugegriffen werden kann.

Für Postgre gibt SQL die ReplicaLag Metrik den Wert der folgenden Abfrage zurück.

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS reader_lag

SQLPostgre-Versionen 9.5.2 und höher verwenden physische Replikationssteckplätze, um die Aufbewahrung von Write-Ahead-Log (WAL) auf der Quell-Instance zu verwalten. Für jede regionsübergreifende Read Replica-Instance RDS erstellt Amazon einen physischen Replikationsslot und ordnet ihn der Instance zu. Zwei CloudWatch Amazon-Metriken, Oldest Replication Slot Lag undTransaction Logs Disk Usage, zeigen, wie weit das Replikat mit der größten Verzögerung in Bezug auf die empfangenen WAL Daten zurückliegt und wie viel Speicherplatz für WAL Daten verwendet wird. Der Wert Transaction Logs Disk Usage kann erheblich ansteigen, wenn ein regionsübergreifendes Lesereplikat signifikant verzögert ist.

Weitere Informationen zur Überwachung einer DB-Instance mit finden Sie CloudWatch unter. Überwachung von Amazon RDS Amazon mit Amazon CloudWatch