Arbeiten mit der lokalen Schreibweiterleitung für Aurora PostgreSQL - Amazon Aurora

Arbeiten mit der lokalen Schreibweiterleitung für Aurora PostgreSQL

Mit den Informationen in den folgenden Abschnitten können Sie überprüfen, ob für einen Datenbank-Cluster die lokale Schreibweiterleitung aktiviert ist. Außerdem finden Sie Überlegungen zur Kompatibilität und Informationen zu den konfigurierbaren Parametern und der Einrichtung der Authentifizierung. So können Sie die lokale Schreibweiterleitungsfunktion in Aurora PostgreSQL effektiv nutzen.

Anmerkung

Wenn eine Writer-Instance in einem Cluster, der die lokale Schreibweiterleitung verwendet, neu gestartet wird, werden alle aktiven, weitergeleiteten Transaktionen und Abfragen auf Reader-Instances, die die lokale Schreibweiterleitung verwenden, automatisch geschlossen. Nachdem die Writer-Instance wieder verfügbar ist, können Sie diese Transaktionen erneut versuchen.

Überprüfen, ob die lokale Schreibweiterleitung für einen DB-Cluster aktiviert ist

Wenn Sie bestimmen möchten, ob Sie die lokale Schreibweiterleitung in einem DB-Cluster verwenden können, stellen Sie sicher, dass das LocalWriteForwardingStatus-Attribut für den Cluster auf enabled festgelegt ist.

In der AWS Management Console sehen Sie auf der Registerkarte Konfiguration der Detailseite des Clusters den StatusAktiviert für Lokale Lesereplikat-Schreibweiterleitung.

Um den Status der Einstellung für die lokale Schreibweiterleitung für alle Cluster anzuzeigen, führen Sie den folgenden AWS CLI-Befehl aus.

aws rds describe-db-clusters \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}' [ { "LocalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "write-forwarding-test-cluster-1" }, { "LocalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "write-forwarding-test-cluster-2" }, { "LocalWriteForwardingStatus": "requested", "DBClusterIdentifier": "test-global-cluster-2" }, { "LocalWriteForwardingStatus": "null", "DBClusterIdentifier": "aurora-postgresql-v2-cluster" } ]

Für einen DB-Cluster sind folgende Werte LocalWriteForwardingStatus zulässig:

  • disabled – Die lokale Schreibweiterleitung ist deaktiviert.

  • disabling – Die lokale Schreibweiterleitung wird gerade deaktiviert.

  • enabled – Die lokale Schreibweiterleitung ist aktiviert.

  • enabling – Die lokale Schreibweiterleitung wird gerade aktiviert.

  • null – Die lokale Schreibweiterleitung ist für diesen DB-Cluster nicht verfügbar.

  • requested – Die lokale Schreibweiterleitung wurde angefordert, ist aber noch nicht aktiv.

Standardparametereinstellungen für die Schreibweiterleitung

Die Aurora-Cluster-Parametergruppen enthalten Einstellungen für die lokale Schreibweiterleitung. Da es sich um Cluster-Parameter handelt, haben alle DB-Instances in allen Clustern die gleichen Werte für diese Variablen. Details zu diesen Parametern sind in der folgenden Tabelle zusammengefasst, mit Nutzungshinweisen unterhalb der Tabelle.

Parameter Scope Typ Standardwert Zulässige Werte
apg_write_forward.connect_timeout Sitzung Sekunden 30 0 – 2147483647
apg_write_forward.consistency_mode Sitzung enum Sitzung SESSION, EVENTUAL, GLOBAL, und OFF
apg_write_forward.idle_in_transaction_session_timeout Sitzung Millisekunden 86400000 0 – 2147483647
apg_write_forward.idle_session_timeout Sitzung Millisekunden 300000 0 – 2147483647
apg_write_forward.max_forwarding_connections_percent Global int 25 1-100

Der apg_write_forward.max_forwarding_connections_percent-Parameter definiert die Obergrenze der Datenbankverbindungsslots, die zum Umgang mit von Readern weitergeleiteten Abfragen verwendet werden können. Er wird als Prozentsatz der Einstellung max_connections für die Writer-DB-Instance ausgedrückt. Wenn beispielsweise max_connections 800 und apg_write_forward.max_forwarding_connections_percent 10 ist, dann lässt der Writer maximal 80 weitergeleitete Sitzungen gleichzeitig zu. Diese Verbindungen stammen aus demselben, von der Einstellung max_connections verwalteten Verbindungspool. Diese Einstellung gilt nur für die Writer-DB-Instance, wenn für den Cluster die lokale Schreibweiterleitung aktiviert ist.

Verwenden Sie die folgenden Einstellungen, um Anforderungen für die lokale Schreibweiterleitung zu steuern:

  • apg_write_forward.consistency_mode – Ein Parameter auf Sitzungsebene, der den Grad der Lesekonsistenz auf dem Lesereplikat steuert. Gültige Werte sind SESSION, EVENTUAL, GLOBAL oder OFF. Standardmäßig ist der Wert auf SESSION festgelegt. Wenn Sie den Wert auf OFF festlegen, wird die lokale Schreibweiterleitung in der Sitzung deaktiviert. Weitere Informationen über Konsistenzebenen finden Sie unter Konsistenz und Isolation für die lokale Schreibweiterleitung in Aurora PostgreSQL. Dieser Parameter ist nur in Reader-Instances relevant, für die die lokale Schreibweiterleitung aktiviert ist.

  • apg_write_forward.connect_timeout – Die maximale Anzahl von Sekunden, die das Lesereplikat beim Herstellen einer Verbindung mit der Writer-DB-Instance wartet, bevor der Versuch beendet wird. Ein Wert von 0 bedeutet, dass auf unbestimmte Zeit gewartet werden soll.

  • apg_write_forward.idle_in_transaction_session_timeout – Die Anzahl der Millisekunden, die die Writer-DB-Instance auf Aktivitäten bei einer Verbindung wartet, die von einem Lesereplikat mit einer offenen Transaktion weitergeleitet wurde, bevor die Verbindung beendet wird. Wenn die Sitzung über diesen Zeitraum hinaus inaktiv ist, bricht Aurora die Sitzung ab. Durch einen Wert des Typs 0 wird der Timout deaktiviert.

  • apg_write_forward.idle_session_timeout – Die Anzahl der Millisekunden, die die Writer-DB-Instance auf Aktivitäten bei einer Verbindung wartet, die von einem Lesereplikat weitergeleitet wurde, bevor sie beendet wird. Wenn die Sitzung über diesen Zeitraum hinaus inaktiv bleibt, beendet Aurora die Sitzung. Durch einen Wert des Typs 0 wird der Timout deaktiviert.

rdswriteforwarduser

rdswriteforwarduser ist ein Benutzer, der verwendet wird, um eine Verbindung zwischen dem Lesereplikat und der Writer-DB-Instance herzustellen.

Anmerkung

rdswriteforwarduser erbt die CONNECT-Berechtigungen für Kundendatenbanken über die PUBLIC-Rolle. Wenn die Berechtigungen für die PUBLIC-Rolle entzogen werden, müssen Sie CONNECT-Berechtigungen für die Datenbanken gewähren, an die Sie Schreibvorgänge weiterleiten müssen.