View a markdown version of this page

rds_tools-Funktionsreferenz - 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.

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 der PostgreSQL-Dokumentation.

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

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. md5 oderscram-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)