Konfiguration der Parametereinstellungen für die pgactive-Erweiterung - 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.

Konfiguration der Parametereinstellungen für die pgactive-Erweiterung

Sie können die folgende Abfrage verwenden, um alle mit der „pgactive“-Erweiterung verknüpften Parameter anzuzeigen.

app=> SELECT * FROM pg_settings WHERE name LIKE 'pgactive.%';

Sie können die pgactive Erweiterung mit verschiedenen Parametern konfigurieren. Diese Parameter können entweder über die AWS Management Console oder die AWS CLI-Schnittstelle eingestellt werden.

Die wichtigsten Parameter der pgactive-Erweiterung

Die folgende Tabelle enthält eine Referenz für die Hauptparameter der pgactive Erweiterung:

Parameter

Einheit

Standard

Beschreibung

pgactive.conflict_logging_include_tuples

boolean

Protokolliert vollständige Tupelinformationen für die pgactive Erweiterung.

Anmerkung

Ein Serverneustart ist erforderlich, damit die Änderungen wirksam werden.

pgactive.log_conflicts_to_table

boolean

Legt fest, ob die pgactive Erweiterung die erkannten Konflikte in der pgactive.pgactive_conflict_history Tabelle protokolliert. Weitere Informationen finden Sie unter Konfliktprotokollierung.

Anmerkung

Ein Serverneustart ist erforderlich, damit die Änderungen wirksam werden.

pgactive.log_conflicts_to_logfile

boolean

Bestimmt, ob die pgactive Erweiterung die erkannten Konflikte in der PostgreSQL-Protokolldatei protokolliert. Weitere Informationen finden Sie unter Konfliktprotokollierung.

Anmerkung

Ein Serverneustart ist erforderlich, damit die Änderungen wirksam werden.

pgactive.synchronous_commit

boolean

aus

Bestimmt das Commit-Verhalten für pgactive Apply-Worker. Wenn diese Option deaktiviert (aus) ist, führen Apply-Worker asynchrone Commits durch. Dadurch wird der PostgreSQL-Durchsatz bei Apply-Vorgängen verbessert, die Wiedergabebestätigungen an den Upstream jedoch verzögert. Die Einstellung auf off ist immer sicher und führt nicht zum Verlust oder Überspringen von Transaktionen. Diese Einstellung wirkt sich nur auf den Zeitpunkt der Festplattenleerungen auf dem Downstream-Knoten und darauf aus, wann Bestätigungen flussaufwärts gesendet werden. Das System verzögert das Senden von Replay-Flush-Bestätigungen, bis Commits durch unabhängige Operationen wie Checkpoints oder regelmäßige Arbeiten auf die Festplatte geschrieben werden. Wenn im Upstream-Bereich jedoch der Downstream unter aufgeführt ist, off führt die Einstellung auf dazusynchronous_standby_names, dass synchrone Commits auf dem Upstream länger brauchen, bis sie dem Client erfolgreich gemeldet werden. In diesem Fall setzen Sie den Parameter auf. on

Anmerkung

Selbst wenn dieser Parameter auf on mit den unter aufgeführten Knoten gesetzt istsynchronous_standby_names, können Replikationskonflikte in Active-Active-Konfigurationen trotzdem auftreten. Das liegt daran, dass dem System das Sperren zwischen den Knoten und das globale Snapshot-Management fehlen, sodass gleichzeitige Transaktionen auf verschiedenen Knoten dasselbe Tupel modifizieren können. Darüber hinaus beginnen Transaktionen erst mit der Replikation, nachdem sie auf dem Upstream-Knoten festgeschrieben wurden. Durch die Aktivierung von synchronem Commit wird die Erweiterung pgactive nicht in ein stets konsistentes System umgewandelt.

pgactive.temp_dump_directory

string

Definiert den temporären Speicherpfad, der für das Klonen von Datenbanken bei der Ersteinrichtung erforderlich ist. Dieses Verzeichnis muss für den Postgres-Benutzer beschreibbar sein und über ausreichend Speicherplatz für einen vollständigen Datenbank-Dump verfügen. Das System verwendet diesen Speicherort nur bei der Ersteinrichtung der Datenbank mit logischen Kopiervorgängen. Dieser Parameter wird nicht von verwendetpgactive_init_copy command.

pgactive.max_ddl_lock_delay

milliseconds

-1

Gibt die maximale Wartezeit für die DDL-Sperre an, bevor gleichzeitige Schreibtransaktionen erzwungen werden. Der Standardwert ist-1, der den in eingestellten Wert übernimmt. max_standby_streaming_delay Dieser Parameter akzeptiert Zeiteinheiten. Sie können ihn beispielsweise für 10 Sekunden auf 10 Sekunden einstellen. Während dieser Wartezeit versucht das System, DDL-Sperren zu erlangen, während es darauf wartet, dass laufende Schreibtransaktionen entweder festgeschrieben oder rückgängig gemacht werden. Weitere Informationen finden Sie unter DDL Locking.

pgactive.ddl_lock_timeout

milliseconds

-1

Gibt an, wie lange ein DDL-Sperrversuch darauf wartet, die Sperre zu erhalten. Der Standardwert ist-1, der den in lock_timeout angegebenen Wert verwendet. Sie können diesen Parameter in Zeiteinheiten wie 10s für 10 Sekunden festlegen. Dieser Timer steuert nur die Wartezeit für den Erhalt einer DDL-Sperre. Sobald das System die Sperre erhält und den DDL-Vorgang startet, stoppt der Timer. Dieser Parameter begrenzt nicht die Gesamtdauer, für die eine DDL-Sperre aufrechterhalten werden kann, oder die gesamte DDL-Betriebszeit. Um die Gesamtdauer des Vorgangs zu steuern, verwenden Sie statement_timeout stattdessen. Weitere Informationen finden Sie unter DDL Locking.

pgactive.debug_trace_ddl_locks_level

boolean

Setzt die standardmäßige Debug-Protokollebene für DDL-Sperrvorgänge in der Erweiterung außer Kraft. pgactive Wenn diese Einstellung konfiguriert ist, werden Meldungen im Zusammenhang mit DDL-Sperren auf der LOG-Debug-Ebene statt auf ihrer Standardebene ausgegeben. Verwenden Sie diesen Parameter, um DDL-Sperraktivitäten zu überwachen, ohne die Ausführlichkeit DEBUG1 - oder DEBUG2 Protokollebenen auf Ihrem gesamten Server zu aktivieren.

Verfügbare Protokollebenen, in aufsteigender Reihenfolge der Ausführlichkeit:

  • keine — DDL-Sperrmeldungen werden nur auf DEBUG1 und niedrigeren Serverprotokollebenen angezeigt.

  • statement — Fügt die LOG-Ausgabe für Versuche zur Erfassung von DDL-Sperren hinzu.

  • acquire_release — Zeichnet Sperrenerfassungs-, Freigabe- und Deklinationsereignisse sowie Peer-Node-Anwendungen von Remote-DDL-Sperren auf.

  • Peers — Stellt zusätzliche Informationen zu DDL-Sperrverhandlungen zwischen Peer-Knoten bereit.

  • debug — Protokolliert alle Aktivitäten im Zusammenhang mit DDL-Sperren auf LOG-Ebene.

Weitere Informationen zu den Überwachungsoptionen finden Sie unter Überwachen globaler DDL-Sperren.

Anmerkung

Änderungen an dieser Einstellung werden wirksam, wenn Sie die Konfiguration neu laden. Sie müssen den Server nicht neu starten.

Zusätzliche pgactive-Erweiterungsparameter

Die folgende Tabelle enthält weniger häufig verwendete und interne Konfigurationsoptionen, die für die pgactive Erweiterung verfügbar sind.

Parameter

Einheit

Standard

Beschreibung

pgactive.debug_apply_delay

integer

Legt eine Anwendungsverzögerung (in Millisekunden) für konfigurierte Verbindungen fest, deren Eintrag keine explizite Anwendungsverzögerung enthält. pgactive.pgactive_connections Diese Verzögerung wird während der Knotenerstellung oder der Verbindungszeit festgelegt, und pgactive wird eine Transaktion auf Peer-Knoten erst wiedergeben, wenn mindestens die angegebene Anzahl von Millisekunden seit dem Festschreiben vergangen ist.

Wird hauptsächlich zur Simulation von Netzwerken mit hoher Latenz in Testumgebungen verwendet, um die Entstehung von Konflikten zu vereinfachen. Beispiel: Bei einer Verzögerung von 500 ms auf den Knoten A und B haben Sie nach dem Einfügen eines Werts auf Knoten A mindestens 500 ms Zeit, um eine widersprüchliche Einfügung auf Knoten B durchzuführen.

Anmerkung

Erfordert ein erneutes Laden des Servers oder einen Neustart der Apply-Worker, um wirksam zu werden.

pgactive.connectability_check_duration

integer

Gibt die Dauer (in Sekunden) an, für die ein Datenbank-Worker versucht, während fehlgeschlagener Versuche Verbindungen herzustellen. Der Worker unternimmt einen Verbindungsversuch pro Sekunde, bis er erfolgreich ist oder diesen Timeout-Wert erreicht. Diese Einstellung ist nützlich, wenn die Datenbank-Engine gestartet wird, bevor der Worker bereit ist, Verbindungen herzustellen.

pgactive.skip_ddl_replication

boolean

on

Steuert, wie DDL-Änderungen in Amazon RDS repliziert oder verarbeitet werden, wenn diese Option aktiviert ist. pgactive Wenn diese Option auf gesetzt iston, verarbeitet der Knoten DDL-Änderungen wie ein nicht-pgktiver Knoten. Für die Arbeit mit diesem Parameter gelten die folgenden Anforderungen:

  • Neue Knoten können keiner pgactive-Gruppe beitreten, wenn ihr skip_ddl_replication Wert vom Wert des Upstream-Knotens abweicht.

  • Bestehende Knoten können pgactive-Worker nicht starten, wenn ihr Parameterwert nicht mit dem Upstream-Knoten übereinstimmt.

  • Alle pgactive-Mitglieder müssen denselben Parameterwert verwenden.

Sie können diesen Parameter mit Superuser-Rechten auf zwei Arten ändern: global, lokal (Sitzungsebene).

Anmerkung

Wenn Sie diesen Parameter falsch ändern, können Ihre Replikationseinrichtungen beschädigt werden.

pgactive.do_not_replicate

boolean

Dieser Parameter ist nur für den internen Gebrauch bestimmt. Wenn Sie diesen Parameter in einer Transaktion festlegen, werden die Änderungen nicht auf andere Knoten in Ihrem DB-Cluster repliziert.

Anmerkung

Wenn Sie diesen Parameter falsch ändern, können Ihre Replikationseinrichtungen beschädigt werden.

pgactive.discard_mismatched_row_attributes

boolean

Dieser Parameter ist nur für den Gebrauch durch Spezialisten vorgesehen. Es wird empfohlen, diesen Parameter nur zur Behebung bestimmter Replikationsprobleme zu verwenden. Verwenden Sie diesen Parameter in folgenden Fällen:

  • Der eingehende Replikationsstream enthält Zeilen mit mehr Spalten als Ihre lokale Tabelle.

  • Diese entfernten Zeilen enthalten Werte, die ungleich Null sind.

Diese Einstellung überschreibt die folgende Fehlermeldung und ermöglicht Datendivergenzen, sodass die Replikation fortgesetzt werden kann: cannot right-pad mismatched attributes; attno %u is missing in local table and remote row has non-null, non-dropped value for this attribute

Anmerkung

Wenn Sie diesen Parameter falsch ändern, können Ihre Replikationseinrichtungen beschädigt werden.

pgactive.debug_trace_replay

boolean

Wenn dieser Wert auf gesetzt iston, wird für jede Remote-Aktion, die nachgeschaltete Apply-Worker verarbeiten, eine Protokollmeldung ausgegeben. Zu den Protokollen gehören:

  • Änderungstyp

  • Name der betroffenen Tabelle

  • Anzahl der Änderungen seit dem Start der Transaktion

  • Transaktions-Commit LSN

  • Zeitstempel festschreiben

  • Kennung des Upstream-Knotens

  • Kennung des Weiterleitungsknotens (falls zutreffend)

In den Protokollen werden auch DDL-Befehle und Tabellenabbrüche in der Warteschlange erfasst.

para>

Standardmäßig enthalten die Protokolle keine Zeilenfeldinhalte. Um Zeilenwerte in die Protokolle aufzunehmen, müssen Sie bei der Neukompilierung die folgenden Flags aktiviert haben:

  • VERBOSE_INSERT

  • VERBOSE_AKTUALISIEREN

  • VERBOSE_LÖSCHEN

Anmerkung

Die Aktivierung dieser Protokollierungseinstellung kann sich auf die Leistung auswirken. Wir empfehlen, sie nur zu aktivieren, wenn sie zur Fehlerbehebung benötigt wird. Änderungen an dieser Einstellung werden wirksam, wenn Sie die Konfiguration neu laden. Sie müssen den Server nicht neu starten.

pgactive.extra_apply_connection_options

Sie können Verbindungsparameter für alle Peer-Node-Verbindungen mit pgactive-Knoten konfigurieren. Diese Parameter steuern Einstellungen wie Keepalives und SSL-Modi. Standardmäßig verwendet pgactive die folgenden Verbindungsparameter:

  • connect_timeout=30

  • keepalives=1

  • keepalives_idle=20

  • keepalives_interval=20

  • keepalives_count=5

Verwenden Sie den folgenden ähnlichen Befehl, um die Standardparameter zu überschreiben:

pgactive.extra_apply_connection_options = 'keepalives=0'

Verbindungszeichenfolgen für einzelne Knoten haben Vorrang vor diesen Einstellungen und den integrierten Verbindungsoptionen von pgactive. Weitere Hinweise zu Verbindungszeichenfolgenformaten finden Sie unter libpq-Verbindungszeichenfolgen.

Wir empfehlen, die Keepalive-Standardeinstellungen aktiviert zu lassen. Deaktivieren Sie Keepalives nur, wenn Sie Probleme mit großen Transaktionen haben, die über unzuverlässige Netzwerke abgeschlossen werden.

Anmerkung

Wir empfehlen, die Keepalive-Standardeinstellungen aktiviert zu lassen. Deaktivieren Sie Keepalives nur, wenn Sie Probleme mit großen Transaktionen haben, die über unzuverlässige Netzwerke abgeschlossen werden. Änderungen an dieser Einstellung werden wirksam, wenn Sie die Konfiguration neu laden. Sie müssen den Server nicht neu starten.

pgactive.init_node_parallel_jobs (int)

Gibt die Anzahl der parallel Jobs an, die bei logischen Knotenverbindungen mit der pgactive.pgactive_join_group Funktion verwendet werden pg_restore können pg_dump und können.

Änderungen an dieser Einstellung werden wirksam, wenn Sie die Konfiguration neu laden. Sie müssen den Server nicht neu starten.

pgactive.max_nodes

int

4

Gibt die maximale Anzahl von Knoten an, die in einer pgactive-Erweiterungsgruppe zulässig sind. Der Standardwert ist 4 Knoten. Sie müssen Folgendes berücksichtigen, wenn Sie den Wert dieses Parameters festlegen:

  • Alle Knoten in einer pgactive-Erweiterungsgruppe müssen denselben Parameterwert verwenden.

  • Ein neuer Knoten kann nicht beitreten, wenn sein Parameterwert vom Upstream-Knoten abweicht.

  • Bestehende Knoten können pgactive Extension Worker nicht starten, wenn sich ihr Parameterwert vom Upstream-Knoten unterscheidet.

  • Größere Gruppen erfordern zusätzlichen Überwachungs- und Wartungsaufwand, daher sollte der Wert dieses Parameters mit Bedacht gewählt werden.

Sie können diesen Parameter auf zwei Arten festlegen: in der Konfigurationsdatei mit dem ALTER SYSTEM SET folgenden Befehl

Der Standardwert für diesen Parameter ist4, was bedeutet, dass zu jedem Zeitpunkt maximal 4 Knoten in der pgactive Erweiterungsgruppe zulässig sind.

Anmerkung

Die Änderung wird wirksam, nachdem Sie den Server neu gestartet haben.

pgactive.permit_node_identifier_getter_function_creation

boolean

Dieser Parameter ist nur für den internen Gebrauch vorgesehen. Wenn sie aktiviert ist, ermöglicht die pgactive Erweiterung die Erstellung der Getter-Funktion pgactive Node Identifier.