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 sindSESSION,EVENTUAL,GLOBALoderOFF. Standardmäßig ist der Wert aufSESSIONfestgelegt. Wenn Sie den Wert aufOFFfestlegen, 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 von0bedeutet, 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 Typs0wird 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 Typs0wird 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.