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.
rds_tools-Funktionsreferenz
Die rds_tools Erweiterung bietet eine Reihe von Hilfsfunktionen für die Verwaltung und Überwachung Ihrer . Mithilfe dieser Funktionen können Sie Replikations-, Vakuum- und Konfigurationsprobleme direkt von SQL aus diagnostizieren, ohne separate Überwachungstools. Diese Funktionen sind zusätzlich zu den Standardfunktionen von PostgreSQL verfügbar. Weitere Informationen zu PostgreSQL-Standardfunktionen finden Sie unter Funktionen und Operatoren
In diesem Abschnitt werden die rds_tools Funktionen beschrieben, die auf verfügbar sind. In jeder Funktionsbeschreibung wird die rds_tools Erweiterungsversion angegeben, in der die Funktion verfügbar wurde.
Führen Sie den folgenden Befehl aus, um die Erweiterung zu erstellen.
postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION
rds_tools.role_password_encryption_type
Gibt die Methode zur Kennwortverschlüsselung zurück, die für jede Datenbankrolle verwendet wurde. Diese Funktion zur Rückgabe von Datensätzen schließt RDS-protected Systemrollen aus der Ausgabe aus. Verfügbar ab der rds_tools Erweiterungsversion 1.0.
Ein Beispiel für die Verwendung dieser Funktion zur Überprüfung der Kennwortverschlüsselung vor der Migration von Datenbankbenutzern zu SCRAM finden Sie unter. Verwenden von SCRAM für die PostgreSQL-Passwortverschlüsselung
Funktionsprototyp
rds_tools.role_password_encryption_type()
Argumente
Keine.
Ausgabe
-
rolname— Der Name der Datenbankrolle. -
encryption_type— Die verwendete Methode zur Passwortverschlüsselung, z. B.md5oderscram-sha-256.
Verwendungsbeispiel
=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ---------------+----------------- postgres | md5 app_user | md5 readonly_user | scram-sha-256 (3 rows)
rds_tools.postgres_get_av_diag
Ruft Diagnoseinformationen über Autovakuumprozesse ab, die blockieren oder hinterherhinken, sowie Vorschläge zur Lösung der einzelnen Probleme. Führen Sie diese Funktion zur Rückgabe von Datensätzen in der Datenbank mit der ältesten Transaktions-ID aus, um genaue Ergebnisse zu erhalten. Weitere Informationen finden Sie unter Identifizieren und Beheben aggressiver Vakuumblocker.
Verfügbar ab der rds_tools Erweiterungsversion 1.9.
Funktionsprototyp
rds_tools.postgres_get_av_diag()
Argumente
Keine.
Ausgabe
-
blocker— Die Kategorie der Datenbankaktivität, die das Vakuum blockiert. Der Wert ist einer der folgenden:Aktive Anweisung
Leerlauf in Transaktion
Vorbereitete Transaktion
Logischer Replikations-Slot
Lesereplikat mit physischen Replikations-Slots
Lesereplikat mit Streaming-Replikation
Temporäre Tabellen
-
database— Der Name der Datenbank, in der die Blockierungsaktivität stattfindet. -
blocker_identifier— Die Kennung der Blockierungsaktivität. Der Wert hängt vom Blockertyp ab:Bei einer aktiven Anweisung oder einer Sitzung im Leerlauf bei einer Transaktion die Prozess-ID mit der zugehörigen SQL-Anweisung.
Für eine vorbereitete Transaktion der Name der vorbereiteten Transaktion.
Für ein gelesenes Replikat die IP-Adresse des Replikats.
Bei einem Replikationssteckplatz der Name des Replikationssteckplatzes.
-
wait_event— Das Warteereignis der blockierenden Sitzung, falls zutreffend. -
autovacuum_lagging_by— Die Anzahl der Transaktionen, bei denen Autovacuum in dieser Kategorie hinterherhinkt. -
suggestion— Ein Vorschlag zur Behebung des Blockers, einschließlich des Datenbanknamens, der Prozess-ID und der zu ergreifenden Aktion. -
suggested_action— Eine Reihe von Maßnahmen, die ergriffen werden müssen, um den Blocker zu beheben.
Verwendungsbeispiel
=> SELECT * FROM rds_tools.postgres_get_av_diag() ORDER BY autovacuum_lagging_by DESC; blocker | Active statement database | my_database blocker_identifier | SELECT pg_sleep(20000); wait_event | Timeout:PgSleep autovacuum_lagging_by | 568600871 suggestion | Connect to database "my_database", review carefully, and consider terminating the process using suggested_action. suggested_action | {"SELECT pg_terminate_backend(29621);"}