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 RDS for PostgreSQL . 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 RDS für PostgreSQL PostgreSQL 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
Themen
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.blue_green_get_status
Sucht nach eingeschränkten Befehlen, die während der blue/green Bereitstellung ausgeführt werden. Bei blue/green Bereitstellungen, die logische Replikation verwenden, können Sie keine DDL-Befehle (Data Definition Language) oder LO-Operationen (Large Object) zwischen der blauen und der grünen Umgebung replizieren. Wenn ein eingeschränkter Befehl erkannt wird, starten Sie die blue/green Bereitstellung neu, da die Daten nicht ordnungsgemäß in die grüne Umgebung repliziert werden können. Verfügbar ab der rds_tools Erweiterungsversion 1.3.
Funktionsprototyp
rds_tools.blue_green_get_status(command_type)
Argumente
-
command_type— Der Typ des eingeschränkten Befehls, der überprüft werden soll. Gültige Werte sind'DDL'(Befehle in der Datendefinitionssprache) und'LO'(Operationen für große Objekte).
Ausgabe
Ein boolean-Wert. Gibt zurück, true ob während der Bereitstellung ein eingeschränkter Befehl des angegebenen Typs ausgeführt wurde oder false ob kein solcher Befehl erkannt wurde.
Verwendungsbeispiel
=> SELECT rds_tools.blue_green_get_status('DDL'); blue_green_get_status ----------------------- f (1 row)
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);"}
rds_tools.rds_version
Zeigt die Version der RDS-Engine für PostgreSQL für Ihre DB-Instance an. Diese Funktion liest die Versionsinformationen aus den Konfigurationsdateien der Instance. Verfügbar ab der rds_tools Erweiterungsversion 1.1.
Funktionsprototyp
rds_tools.rds_version()
Argumente
Keine.
Ausgabe
Eine Zeichenfolge, die die Engine-Version enthält.
Verwendungsbeispiel
=> SELECT rds_tools.rds_version(); rds_version ------------- 18.1.R1 (1 row)
rds_tools.logical_seed_lsn
Gibt die Log-Sequenznummer (Logical Seed Log Sequence Number, LSN) zurück, die den Punkt darstellt, an dem die logische Replikation von der Quellinstanz abweicht. Verwenden Sie diese Funktion, um logische Replikationseinrichtungen zu verwalten und die Konsistenzpunkte der Replikation zu verstehen. Verfügbar ab der rds_tools Erweiterungsversion 1.2.
Funktionsprototyp
rds_tools.logical_seed_lsn()
Argumente
Keine.
Ausgabe
Ein pg_lsn-Wert.
Verwendungsbeispiel
=> SELECT rds_tools.logical_seed_lsn(); logical_seed_lsn ------------------ 0/1677B68 (1 row)
rds_tools.db_instance_identifier
Zeigt die DB-Instance-ID an. Sie geben diese Kennung an, wenn Sie die DB-Instance erstellen, und AWS-Services verwenden sie durchgehend, um Ihre Datenbank zu identifizieren. Verfügbar ab der rds_tools Erweiterungsversion 1.2.
Funktionsprototyp
rds_tools.db_instance_identifier()
Argumente
Keine.
Ausgabe
Eine Zeichenfolge, die die DB-Instance-ID enthält.
Verwendungsbeispiel
=> SELECT rds_tools.db_instance_identifier(); db_instance_identifier ------------------------ my-postgres-instance (1 row)
rds_tools.dbi_resource_id
Zeigt die DB-Instance-Ressourcen-ID (DBI-Ressourcen-ID) Ihrer DB-Instance an. Die DBI-Ressourcen-ID ist eine eindeutige, unveränderliche Kennung, die AWS für die DB-Instance generiert. Sie bleibt während der gesamten Lebensdauer der Instance konstant, auch wenn Sie die Instance umbenennen. Verwenden Sie diesen Wert, um Datenbankaktivitäten mit CloudTrail AWS-Protokollen oder anderen AWS-Überwachungsservices zu korrelieren. Dieser Wert entspricht dem DbiResourceId Feld, das vom Befehl dbInstance RDS API zurückgegeben wurde. Verfügbar ab der rds_tools Erweiterungsversion 1.4.
Funktionsprototyp
rds_tools.dbi_resource_id()
Argumente
Keine.
Ausgabe
Eine Zeichenfolge, die die DBI-Ressourcen-ID enthält.
Verwendungsbeispiel
=> SELECT rds_tools.dbi_resource_id(); dbi_resource_id ----------------------------------- db-ABC123DEF456GHI789JKL012MNO345P (1 row)
rds_tools.multi_az_db_cluster_source_dbi_resource_id
Zeigt die DBI-Ressourcen-ID der Quell-Instance für eine Multi-AZ DB-Cluster-Bereitstellung an. Verwenden Sie diese Funktion, um die Beziehung zwischen Instanzen in einer Multi-AZ Konfiguration zu verstehen und Fehler bei Replikations- oder Failover-Szenarien zu beheben. Verfügbar ab der rds_tools Erweiterungsversion 1.4.
Funktionsprototyp
rds_tools.multi_az_db_cluster_source_dbi_resource_id()
Argumente
Keine.
Ausgabe
Eine Zeichenfolge, die die Quell-DBI-Ressourcen-ID enthält. Gibt NULL zurück, wenn die Instance nicht Teil eines Multi-AZ DB-Clusters ist, die Konfigurationsdatei nicht existiert oder das dbi_resource_id Feld nicht in der Konfiguration vorhanden ist.
Verwendungsbeispiel
=> SELECT rds_tools.multi_az_db_cluster_source_dbi_resource_id(); multi_az_db_cluster_source_dbi_resource_id -------------------------------------------- db-XYZ789ABC123DEF456GHI012JKL345MNO678P (1 row)
rds_tools.show_topology
Zeigt Topologie-Metadaten für Multi-AZ RDS-Cluster an, was schnelle Switchovers ermöglicht, indem Verbindungsinformationen für alle Instances im Cluster bereitgestellt werden. Client-Bibliotheken wie der AWS Advanced JDBC Wrapper-Treiber verwenden diese Funktion zur Rückgabe von Mengen, um eine direkte Verbindung zu allen Instances in einem RDS-Cluster herzustellen. Multi-AZ Um die Ressourcen-ID der Writer-Instance zu identifizieren, verwenden Sie diese Funktion zusammen mit der Funktion. rds_tools.multi_az_db_cluster_source_dbi_resource_id Verfügbar ab der rds_tools Erweiterungsversion 1.4.
Funktionsprototyp
rds_tools.show_topology([client_identifier])
Argumente
-
client_identifier(optional) — Ein Bezeichner für die Client-Bibliothek oder den Proxy, der die Topologie abfragt. Dieser Parameter ist optional, wird aber empfohlen, da er es Amazon RDS ermöglicht, nachzuverfolgen, welche Clients aktiv Topologie abfragen, und Telemetrie zur Unterstützung zusätzlicher Clients bereitstellt.
Ausgabe
-
id— Die DBI-Ressourcen-ID jeder Instance im RDS-Cluster. Multi-AZ -
endpoint— Der Endpunkt für jeden Knoten im Cluster. -
port— Die Portnummer für jede Instanz im Multi-AZ RDS-Cluster. -
role— Die Rolle des Knotens im Cluster, z. B. Writer oder Reader. -
status— Der Status des Knotens. -
version— Die Version des Topologiedatensatzes.
Verwendungsbeispiel
=> SELECT id, endpoint, port, role FROM rds_tools.show_topology('my-jdbc-app'); id | endpoint | port | role -----------------+-----------------------------------------------------------+------+-------- db-IDENTIFIER-1 | somedb-instance-1.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | writer db-IDENTIFIER-2 | somedb-instance-2.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader db-IDENTIFIER-3 | somedb-instance-3.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader (3 rows)
rds_tools.pg_ls_multixactdir
Listet den Inhalt des pg_multixact Verzeichnisses auf, das Multitransaktionsdaten in PostgreSQL speichert. Verwenden Sie diese Funktion zur Rückgabe von Datensätzen, um die Multixact-Nutzung zu überwachen, Probleme im Zusammenhang mit Multixact zu beheben und Datenbankspeichermuster zu verstehen. Verfügbar rds_tools ab der Erweiterungsversion 1.7.
Funktionsprototyp
rds_tools.pg_ls_multixactdir()
Argumente
Keine.
Ausgabe
-
name— Der Name der Datei oder des Verzeichnisses. -
size— Die Größe in Byte. -
modification— Der Zeitstempel der letzten Änderung.
Verwendungsbeispiel
=> SELECT * FROM rds_tools.pg_ls_multixactdir(); name | size | modification ---------------------------+------+------------------------ pg_multixact/members/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/members/0000 | 8192 | 2025-08-22 21:53:46+00 pg_multixact/offsets/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/offsets/0000 | 8192 | 2026-10-01 19:22:38+00 (4 rows)