IBM Cloud Docs
PostgreSQL-Erweiterungen verwalten

PostgreSQL-Erweiterungen verwalten

In PostgreSQL sind Erweiterungen Module, die zusätzliche Funktionen, Operatoren oder Typen bereitstellen. Viele Erweiterungen sind in IBM Cloud® Databases for PostgreSQL verfügbar. Um sie zu verwenden, legen Sie das Administratorkennwort für Ihren Service fest und verwenden Sie es für die Verbindung mit psql.

Installierte Erweiterungen auflisten

Sie können mit dem Befehl \dx eine Liste aller Erweiterungen abrufen, die in einer Datenbank installiert sind.

Zum Beispiel zeigt die Ausgabe für \dx bei Ausführung für die Databases for PostgreSQL-Standarddatenbank die einzige installierte Erweiterung an.

ibmclouddb=> \dx
                 List of installed extensions
  Name   | Version |   Schema   |         Description
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

Erweiterungen installieren

Um eine Erweiterung in einer Datenbank zu installieren, verwenden Sie CREATE EXTENSION. Um z. B. pg_stat_statements auf der Datenbank ibmclouddb zu installieren, verwenden Sie den folgenden Befehl:

ibmclouddb=> CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION

Erweiterungen werden im schreibgeschützten ibm_extension-Schema installiert. Das Schema ist Teil von search_path, sodass Erweiterungsobjekte nicht mit einem Schema qualifiziert werden müssen. Die Änderung des Schemas public in das Schema ibm_extension ist erforderlich, um die Sicherheit und Integrität Ihrer Daten zu schützen.

Wenn Sie den Befehl \dx nach der Installation einer Erweiterung ausführen, wird er in der Tabelle angezeigt.

ibmclouddb=> \dx
                                     List of installed extensions
        Name        | Version |   Schema      |                        Description
--------------------+---------+---------------+-----------------------------------------------------------
 pg_stat_statements | 1.5     | ibm_extension | track execution statistics of all SQL statements executed
 plpgsql            | 1.0     | pg_catalog    | PL/pgSQL procedural language
(2 rows)

Datenbankerweiterungen in PostgreSQL werden pro Datenbank verwaltet. Wenn Sie mehrere Datenbanken haben, für die Sie eine Erweiterung installieren möchten, führen Sie den Befehl CREATE in jeder Datenbank aus.

Erweiterungen aktualisieren

Wenn eine neuere Version einer Erweiterung verfügbar ist als die, die Sie derzeit installiert haben, verwenden Sie ALTER EXTENSION, um ein Upgrade durchzuführen.

Erweiterungsspezifische Hinweise

pg_repack

  • pg_repack-Dokumentation

  • Wenn Sie den Befehl pg_repack ausführen, geben Sie das Flag -k ein, um die Prüfung auf Superuser zu umgehen. Sehen Sie sich das folgende Beispiel an:

    pg_repack -k [OPTION]... [DBNAME]
    
  • Damit pg_repack zuverlässig ausgeführt werden kann, muss Ihre Bereitstellung PostgreSQL 9.6 oder höher haben.

  • Jeder Benutzer kann pg_repack ausführen, aber mit dem Befehl kann er nur eine Tabelle austauschen, für die er die Berechtigungen hat.

  • pg_repack muss eine exklusive Sperre für Objekte nehmen, die am Ende der Reorganisation reorganisiert werden. Wenn es diese Sperre nach einem bestimmten Zeitraum nicht abrufen kann, bricht es alle im Konflikt stehenden Abfragen ab. Wenn dieser Fall eintritt, schlägt die Reorganisation fehl. Standardmäßig kann nur der Benutzer mit Administratorberechtigung unter PostgreSQL 9.6 und höher die in Konflikt stehenden Abfragen abbrechen. Um die Möglichkeit zum Abbrechen von Abfragen für andere Datenbankbenutzer verfügbar zu machen, erteilen Sie die pg_signal_backend Rolle über den Benutzer mit Administratorberechtigung.

pgaudit

  • pgaudit bibliotheken sind vorgeladen und erfordern keine Ausführung von create extension pgaudit. Weitere Informationen finden Sie unter Protokollierung mit pgAudit, um pgaudit-Protokolle zu aktivieren.

pgvector

  • Um die Erweiterung pgvector zu Ihrer Bereitstellung hinzuzufügen, verwenden Sie den Befehl create extension vector.
  • Wichtig: pgvector erfordert PostgreSQL Version 15 oder höher.

Verfügbare Erweiterungen

Sehen Sie sich die folgende Liste aller verfügbaren Erweiterungen an. Um eine Liste der verfügbaren Erweiterungen für Ihre Bereitstellung zu erhalten, verwenden Sie SELECT name FROM pg_available_extensions; in psql.

ibmclouddb=> SELECT name FROM pg_available_extensions order by 1;
             name             
------------------------------
 address_standardizer
 address_standardizer_data_us
 amcheck
 autoinc
 bloom
 btree_gin
 btree_gist
 citext
 cube
 dblink
 dict_int
 dict_xsyn
 earthdistance
 file_fdw
 fuzzystrmatch
 hstore
 insert_username
 intagg
 intarray
 isn
 lo
 ltree
 moddatetime
 old_snapshot
 pageinspect
 pg_buffercache
 pg_freespacemap
 pg_prewarm
 pg_repack
 pg_stat_statements
 pg_surgery
 pg_trgm
 pg_visibility
 pg_walinspect
 pgaudit
 pgcrypto
 pgrouting
 pgrowlocks
 pgstattuple
 plpgsql
 postgis
 postgis_raster
 postgis_tiger_geocoder
 postgis_topology
 postgres_fdw
 refint
 seg
 sslinfo
 tablefunc
 tcn
 tsm_system_rows
 tsm_system_time
 unaccent
 uuid-ossp
 xml2
(55 rows)

ibmclouddb=> select version();
                                                 version
----------------------------------------------------------------------------------------------------------
 PostgreSQL 16.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-2), 64-bit
(1 row)