PostgreSQL-Erweiterungen konfigurieren

Sie können PostgreSQL erweitern, indem Sie SQL-Objekte in einem Paket bündeln und als Einheit verwenden. Auf dieser Seite finden Sie Informationen zum Konfigurieren der von Cloud SQL unterstützten PostgreSQL-Erweiterungen.

PostgreSQL-Erweiterungen verwenden

Sie können nur die Erweiterungen installieren, die von Cloud SQL unterstützt werden. Weitere Informationen finden Sie unter Von Cloud SQL unterstützte PostgreSQL-Erweiterungen.

Erweiterung installieren

Für die Verwendung einer Erweiterung müssen Sie diese installieren:

Anforderungen für Superuser-Berechtigungen

In Cloud SQL können Erweiterungen nur von Nutzern mit der Rolle cloudsqlsuperuser erstellt werden. Wenn Sie eine neue PostgreSQL-Instanz erstellen, wird der postgres-Standardnutzer automatisch angelegt. Sie müssen aber das Passwort des Nutzers festlegen. Der postgres-Standardnutzer ist Teil der Rolle cloudsqlsuperuser. Weitere Informationen finden Sie unter PostgreSQL-Nutzer.

Verbindungen zwischen Datenbanken

Die Zielinstanzen für Verbindungen müssen sich im selben VPC-Netzwerk wie die Instanz befinden, von der die Verbindung ausgeht.

Für Clusterinstanzen können Sie die Option Vertrauenswürdige Clientzertifikate erforderlich in der Google Cloud Console nicht auswählen. Außerdem lässt sich für den Host nicht „localhost“ oder 127.0.0.1 festlegen, um eine Verbindung zu Datenbanken innerhalb derselben Instanz herzustellen. Verwenden Sie stattdessen die IP-Adresse, die in der Google Cloud Console für Ihre Instanz angezeigt wird.

Unterstützung für eine neue Erweiterung anfordern

Sie können in Cloud SQL keine eigenen Erweiterungen erstellen.

Wenn Sie Support für eine Erweiterung anfordern möchten, klicken Sie bei dem offenen Problemfall auf +1 oder erstellen Sie ein neues Problemfall. Eine Liste der offenen Cloud SQL-Problemfälle sowie Informationen zum Erstellen neuer Problemfälle finden Sie unter Pro Produkt nach Problemfällen und Funktionsanfragen suchen oder sie erstellen.

Von Cloud SQL unterstützte PostgreSQL-Erweiterungen

Informationen zum Verwenden einer bestimmten Erweiterung finden Sie unter dem Link zur Dokumentation in den folgenden Tabellen.

Die Cloud SQL-Unterstützung für PostgreSQL-Erweiterungen kann in die folgenden Kategorien unterteilt werden:

PostGIS

Die PostGIS-Erweiterung wird für Cloud SQL for PostgreSQL für alle Hauptversionen unterstützt.

Die folgende Tabelle enthält die PostGIS-Erweiterungsversionen für jede Cloud SQL for PostgreSQL-Version:

Cloud SQL for PostgreSQL-Version PostGIS-Erweiterung
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.2.5
PostgreSQL 13 3.4.0
PostgreSQL 14 3.4.0
PostgreSQL 15 3.4.0
PostgreSQL 16 3.4.0
PostgreSQL 17 3.4.3

Für eine bestimmte PostgreSQL-Hauptversion können Sie im Befehl CREATE EXTENSION mithilfe der VERSION-Klausel eine PostGIS-Erweiterungsversion angeben.

Die PostGIS-Erweiterung umfasst Folgendes:

Weitere Informationen finden Sie unter PostGIS-Installation.

Darüber hinaus enthält Cloud SQL for PostgreSQL die Version 3.3.0 der Erweiterung pgRouting, die PostGIS erweitert. Die pgRouting-Erweiterung verbessert die raumbezogene Verarbeitung durch Netzwerkrouting und -analyse.

Sie können PostGIS und die zugehörigen Erweiterungen manuell auf die neueste Version aktualisieren. Weitere Informationen zum Upgraden Ihrer PostGIS-Erweiterungen finden Sie unter PostGIS upgraden.

Datentyperweiterungen

Erweiterung Beschreibung
btree_gin Stellt Beispiele für GIN-Operatorklassen bereit, die ein Verhalten wie mit dem B-Baum implementieren.
PostgreSQL 9.6 verwendet Version 1.0. PostgreSQL 10 verwendet Version 1.2. Alle anderen Versionen verwenden Version 1.3.
btree_gist Stellt GiST-Operatorklassen für den Index bereit, die ein Verhalten wie mit dem B-Baum implementieren.
PostgreSQL 9.6 verwendet Version 1.2. PostgreSQL 10, 11, 12 und 13 verwenden Version 1.5. PostgreSQL 14 verwendet Version 1.6.
chkpass Implementiert den Datentyp chkpass, der zum Speichern verschlüsselter Passwörter dient.
PostgreSQL 9.6 und 10 verwenden Version 1.0. Bei anderen Versionen wird dies nicht unterstützt.
citext Stellt den Stringtyp citext bereit, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird.
PostgreSQL 9.6 verwendet Version 1.3. PostgreSQL 10 verwendet Version 1.4. PostgreSQL 11 verwendet Version 1.5. PostgreSQL 12, 13 und 14 verwenden Version 1.6.
cube Implementiert den Datentyp cube zur Darstellung mehrdimensionaler Cubes.
PostgreSQL 9.6 und 10 verwenden Version 1.2. PostgreSQL 11 verwendet Version 1.3. PostgreSQL 12 und 13 verwenden Version 1.4. PostgreSQL 14 verwendet Version 1.5.
hstore Implementiert den Datentyp hstore für das Speichern von Gruppen von Schlüssel/Wert-Paaren innerhalb eines einzelnen PostgreSQL-Werts.
PostgreSQL 9.6 und 10 verwenden Version 1.4. PostgreSQL 11 verwendet Version 1.5. PostgreSQL 12 verwendet Version 1.6. PostgreSQL 13 verwendet Version 1.7. PostgreSQL 14 verwendet Version 1.8.
isn Stellt Datentypen für verschiedene internationale Standards zur Produktnummerierung bereit.
PostgreSQL 9.6 und 10 verwenden Version 1.1. Alle anderen Versionen verwenden Version 1.2.
ip4r Stellt Datentypen für IPv4/v6-Adressen und Adressbereiche sowie Indexunterstützung bereit.
PostgreSQL verwendet Version 2.4.2.
ltree Implementiert den Datentyp ltree zur Darstellung von Datenlabels, die in einer hierarchischen Baumstruktur gespeichert werden.
PostgreSQL 9.6, 10, 11 und 12 verwenden Version 1.1. PostgreSQL 13 und 14 verwenden Version 1.2.
lo Unterstützung für die Verwaltung großer Objekte (auch LOs oder BLOBs genannt).
Cloud SQL for PostgreSQL verwendet Version 1.1.
postgresql-hll Bietet den neuen Datentyp hll für eine HyperLogLog-Datenstruktur. Weitere Informationen finden Sie unter postgresql-hll in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 2.16.
prefix Bietet Präfix-Matching sowie Indexunterstützung.
Cloud SQL for PostgreSQL verwendet Version 1.2.0.

Spracherweiterungen

Erweiterung Beschreibung
plpgsql Eine ladbare prozedurale Sprache zum Erstellen von Funktionen, Prozeduren und Triggern. Sie können diese Sprache auch für die direkte Ausführung von Code in DO-Blöcken verwenden.
Cloud SQL for PostgreSQL verwendet Version 1.0.
plv8 Stellt eine prozedurale Sprache zum Aktivieren von JavaScript bereit.
Cloud SQL for PostgreSQL verwendet Version 3.2.2, die wiederum die V8 JavaScript-Engine-Version 11.5 verwendet.

Verschiedene Erweiterungen

Erweiterung Beschreibung
amcheck Bietet Funktionen zum Prüfen der logischen Konsistenz der Beziehungenstruktur, damit die pg_amcheck-Anwendung auf Fehler prüfen kann.
auto_explain Ermöglicht die automatische Protokollierung von Ausführungsplänen für langsame Anweisungen zur Fehlerbehebung und mehr. Bietet eine automatische Möglichkeit, die Funktionalität des Befehls EXPLAIN auszuführen. Weitere Informationen finden Sie auch unter auto_explain in diesem Dokument.
autoinc Bietet Funktionen zum automatischen Erhöhen von Feldern. Mit diesem Trigger wird der nächste Wert einer Sequenz in einem Ganzzahlfeld gespeichert.
Cloud SQL for PostgreSQL verwendet Version 1.0.
bloom Bietet eine Methode zum Zugriff auf Indexe, die auf Bloom-Filtern basieren. Ein Bloomfilter ist eine platzsparende Datenstruktur, mit der Sie prüfen können, ob ein Element zu einem Set gehört.
Cloud SQL for PostgreSQL verwendet Version 1.0.
dblink Stellt Funktionen für die Verbindung mit PostgreSQL-Datenbanken innerhalb einer Datenbanksitzung bereit. Weitere Informationen finden Sie in diesem Dokument unter dblink.
Cloud SQL for PostgreSQL verwendet Version 1.2.
decoderbufs Ein logischer PostgreSQL-Decoder, der Ausgabedaten als Protokollzwischenspeicher bereitstellt, angepasst für Debezium.
dict_int Eine Add-on-Wörterbuchvorlage für die Volltextsuche, die die Indexierung von Ganzzahlen steuert.
Cloud SQL for PostgreSQL verwendet Version 1.0.
earthdistance Bietet zwei Ansätze zur Berechnung von Großkreisentfernungen auf der Erdoberfläche.
Cloud SQL for PostgreSQL verwendet Version 1.1.
fuzzystrmatch Bietet mehrere Funktionen, um Ähnlichkeiten und Unterschiede zwischen Strings zu bestimmen.
Cloud SQL for PostgreSQL verwendet Version 1.1.
google_ml_integration Erzeugt Vektoreinbettungen, um Textprompts mithilfe eines Large Language Models (LLM) in numerische Vektoren zu übersetzen.
Cloud SQL for PostgreSQL verwendet Version 1.2.
insert_username Bietet Funktionen zum Speichern des Namens des aktuellen Nutzers in einem Textfeld. So können Sie nachverfolgen, wer eine Zeile in einer Datenbanktabelle zuletzt geändert hat.
Cloud SQL for PostgreSQL verwendet Version 1.0.
intagg Bietet eine Zusammenfassung von Ganzzahlen und einen Zähler.
Cloud SQL for PostgreSQL verwendet Version 1.1.
intarray Bietet eine Reihe von Funktionen und Operatoren zum Bearbeiten von Arrays mit ganzen Zahlen ohne Nullen und zum Ausführen indexierter Suchanfragen darin.
PostgreSQL 9.6, 10, 11 und 12 verwenden Version 1.2. PostgreSQL 13 verwendet Version 1.3. PostgreSQL 14 verwendet Version 1.5.
moddatetime Bietet Funktionen zum Speichern der aktuellen Uhrzeit in einem timestamp-Feld. So können Sie nachverfolgen, wann eine Zeile in einer Datenbanktabelle zuletzt geändert wurde.
Cloud SQL for PostgreSQL verwendet Version 1.0.
oracle_fdw Bietet einen Wrapper für externe Daten (fdw) für den einfachen und effizienten Zugriff auf Oracle-Datenbanken.
Cloud SQL for PostgreSQL verwendet Version 1.2.
orafce Stellt Funktionen und Operatoren bereit, die einen Teil der Funktionen und Pakete aus einer Oracle-Datenbank emulieren. Mit diesen Funktionen können Sie Oracle-Anwendungen zu PostgreSQL portieren.
PostgreSQL 9.6 und 10 verwenden Version 4.6.1. PostgreSQL 11 und höher verwenden Version 4.7.0.
pageinspect Prüft den Inhalt von Datenbankseiten auf unterer Ebene. Weitere Informationen finden Sie unter pageinspect in diesem Dokument.
PostgreSQL 9.6 verwendet Version 1.5. PostgreSQL 10 verwendet Version 1.6. PostgreSQL 11 und 12 verwenden Version 1.7. PostgreSQL 13 und 14 verwenden Version 1.8.
pgAudit Erhebt Auditdaten.

Mögliche Werte für die Audit-Logdateien für alle Versionen von pgAudit sind READ, WRITE, FUNCTION, ROLE, DDL, MISC und ALL. Für die Versionen 1.4.2 bis 1.6.1 können Sie auch den Wert MISC_SET festlegen.

Weitere Informationen zur Verwendung dieser Erweiterung mit Cloud SQL finden Sie unter Audit für PostgreSQL mit pgAudit.

pg_background Damit können Sie beliebige Befehle in einem Hintergrund-Worker ausführen.
Cloud SQL for PostgreSQL verwendet Version 1.2.
pg_bigm Aktiviert die Volltextsuche und ermöglicht einen Zwei-Gramm-Index (bigram) für eine schnellere Volltextsuche. Siehe auch pg_bigm in diesem Dokument.
pg_buffercache Bietet eine Möglichkeit zu untersuchen, was im gemeinsamen Zwischenspeichercache in Echtzeit geschieht.
PostgreSQL 9.6 verwendet Version 1.2. PostgreSQL 10, 11, 12, 13 und 14 verwenden Version 1.3.
pg_cron Bietet einen Cron-basierten Jobplaner. Mit dieser Erweiterung kann die Cron-Syntax verwendet werden, um PostgreSQL-Befehle direkt aus der Datenbank zu planen. Weitere Informationen zur Erweiterung finden Sie in diesem Dokument unter pg_cron.
 PostgreSQL-Versionen 10 und höher verwenden Version 1.6.0.
pgcrypto Stellt kryptografische Funktionen für PostgreSQL zur Verfügung.
Cloud SQL for PostgreSQL verwendet Version 1.3.
pglogical Bietet logische Replikation für PostgreSQL. Weitere Informationen finden Sie unter Logische Replikation und Decodierung einrichten.
Cloud SQL for PostgreSQL verwendet Version 2.4.3.
pgfincore Eine Reihe von Funktionen zum Verwalten von Seiten im Laufwerk-Cache des Betriebssystems von PostgreSQL. Siehe auch pgfincore in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 1.3.1.
pg_freespacemap Prüft die Free Space Map (FSM). Siehe auch pg_freespacemap in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 1.2.
pg_hint_plan Ermöglicht die Verbesserung von PostgreSQL-Ausführungsplänen mithilfe von Hinweisen. Dies sind einfache Beschreibungen in SQL-Kommentaren. Weitere Informationen finden Sie unter pg_hint_plan in diesem Dokument.
pgoutput Dieses Plug-in wird von der logischen Replikation für Change Data Capture verwendet. pgoutput ist ein Standard-Plug-in und wird daher in allen Versionen von Cloud SQL for PostgreSQL unterstützt.
pg_ivm Hiermit können Sie materialisierte Ansichten aktualisieren, bei denen nur inkrementelle Änderungen berechnet und auf Ansichten angewendet werden, anstatt den Inhalt von Grund auf neu zu berechnen.
PostgreSQL-Versionen 13 und höher unterstützen Version 1.9.
pg_partman Ermöglicht das Erstellen und Verwalten zeitbasierter und serieller Tabellenpartitionen. Siehe auch pg_partman in diesem Dokument.
PostgreSQL-Versionen 14 und höher unterstützen Version 5.0.1, während PostgreSQL-Versionen niedriger als 14 nur bis Version 4.7.4 unterstützt werden.
pg_prewarm Bietet eine bequeme Möglichkeit, Beziehungsdaten in den Zwischenspeichercache des Betriebssystems oder von PostgreSQL zu laden.
PostgreSQL 9.6 und 10 verwenden Version 1.1. PostgreSQL 11, 12, 13 und 14 verwenden Version 1.2.
pg_proctab Ermöglicht Ihnen, pg_top mit Cloud SQL for PostgreSQL zu verwenden und Berichte aus der Betriebssystemprozesstabelle zu erstellen. Siehe auch pg_proctab in diesem Dokument.
pg_repack Ermöglicht das Entfernen von Bloat aus Tabellen und Indexen. Optional haben Sie die Möglichkeit, ein Online-Clustering auszuführen (Tabellen nach Clusterindex sortieren). Siehe auch pg_repack in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 1.5.0.
pgrowlocks Stellt Zeilensperrinformationen für die angegebene Tabelle bereit.
Cloud SQL for PostgreSQL verwendet Version 1.2.
pgstattuple Bietet verschiedene Funktionen zum Abrufen von Tuple-Statistiken.
PostgreSQL 9.6 verwendet Version 1.4. Alle anderen Versionen verwenden Version 1.5.
pg_similarity Bietet Unterstützung für Ähnlichkeitsabfragen in PostgreSQL.
Cloud SQL for PostgreSQL verwendet Version 1.0.
pg_squeeze Entfernt nicht verwendeten Speicherplatz aus einer Tabelle und sortiert optional Einträge oder Zeilen (Tupel) der Tabelle mithilfe eines Index. Weitere Informationen zu dieser Erweiterung finden Sie in diesem Dokument unter pg_squeeze.
PostgreSQL-Versionen 11 und höher verwenden Version 1.5.
pg_stat_statements Bietet eine Möglichkeit, die Ausführungsstatistiken aller ausgeführten SQL-Anweisungen zu beobachten.
PostgreSQL 9.6 verwendet Version 1.4. PostgreSQL 10 und 11 verwenden Version 1.6. PostgreSQL 12 verwendet Version 1.7. PostgreSQL 13 verwendet Version 1.8. PostgreSQL 14 verwendet Version 1.9.
pgTAP Bietet ein Framework für Einheitentests für PostgreSQL, geschrieben in PL/pgSQL und PL/SQL.
Cloud SQL for PostgreSQL verwendet Version 1.3.0.
pg_trgm Stellt Funktionen und Operatoren zum Ermitteln der Ähnlichkeit von alphanumerischem Text anhand von Trigramm-Abgleichen sowie Indexoperatorklassen bereit, die eine schnelle Suche nach ähnlichen Strings unterstützen.
PostgreSQL 9.6 und 10 verwenden Version 1.3. PostgreSQL 11 und 12 verwenden Version 1.4. PostgreSQL 13 verwendet Version 1.5. PostgreSQL 14 verwendet Version 1.6.
pgtt

Erstellt und verwaltet globale temporäre DB2- oder Oracle-Tabellen in einer PostgreSQL-Datenbank.
Cloud SQL for PostgreSQL verwendet Version 3.0.

pgvector

Eine Open-Source-Erweiterung zum Speichern und Suchen von Vektoreinbettungen in PostgreSQL-Datenbanken.
PostgreSQL-Versionen 13 und höher unterstützen Version 0.8.0, PostgreSQL-Version 12 unterstützt bis Version 0.7.4 und PostgreSQL-Version 11 unterstützt bis Version 0.5.1.

pg_visibility Bietet die Möglichkeit, die Sichtbarkeitskarte (Visibility Map, VM) sowie die Sichtbarkeitsinformationen einer Tabelle auf Seitenebene zu prüfen. Siehe auch pg_visibility in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 1.2.
pg_wait_sampling Erfasst stichprobenbasierte Statistiken von Warteereignissen und stellt Warteereignisdaten für Prozesse auf Servern bereit. Cloud SQL for PostgreSQL verwendet Version 1.1.5.
PL/Proxy Handler für prozedurale Sprachen, der Remote-Prozeduraufrufe zwischen PostgreSQL-Datenbanken mit optionaler Fragmentierung ermöglicht. Siehe auch PL/Proxy in diesem Dokument.
Cloud SQL for PostgreSQL verwendet Version 2.11.0.
postgres_fdw Ermöglicht das Erstellen von Wrappern für externe Daten innerhalb von Instanzen oder zwischen Instanzen. Weitere Informationen finden Sie in diesem Dokument auch unter postgres_fdw.
PostgreSQL 9.6, 10, 11, 12 und 13 verwenden Version 1.0. PostgreSQL 14 verwendet Version 1.1.
postgresql_anonymizer

Maskiert oder ersetzt personenidentifizierbare Informationen oder vertrauliche Daten aus einer PostgreSQL-Datenbank. Weitere Informationen finden Sie im Abschnitt postgresql_anonymizer.

Cloud SQL for PostgreSQL verwendet Version 1.0.0.

postgresql_hll

Bietet eine HyperLogLog-Datenstruktur (hll), mit der die Kardinalität eines Satzes geschätzt wird.

Cloud SQL for PostgreSQL verwendet Version 2.18.

rdkit Eine Sammlung von Software für Chemoinformatik und maschinelles Lernen. Mit dieser Erweiterung können Sie molekulare Strukturen vergleichen, bearbeiten und identifizieren.
Cloud SQL for PostgreSQL verwendet Version 4.2.0.
refint Enthält Funktionen zum Prüfen von Fremdschlüsseleinschränkungen, der Referenztabelle und der referenzierten Tabelle. Diese Erweiterung zeigt auch das Server Programming Interface (SPI). Cloud SQL for PostgreSQL verwendet Version 1.0.
sslinfo Stellt Informationen über das SSL-Zertifikat bereit, das der aktuelle Client beim Herstellen der Verbindung zur Instanz verwendet hat.
Cloud SQL for PostgreSQL verwendet Version 1.2.
tablefunc Enthält verschiedene Funktionen, die Tabellen (mehrere Zeilen) zurückgeben.
Cloud SQL for PostgreSQL verwendet Version 1.0.
tcn Stellt eine Triggerfunktion bereit, die Listener über Änderungen am Inhalt von Datenbanktabellen benachrichtigt.
Cloud SQL for PostgreSQL verwendet Version 1.0.
temporal_tables Unterstützung für temporäre Tabellen In einer Zeittabelle wird der Zeitraum erfasst, in dem eine Zeile aus datenbanktechnischer Sicht gültig ist.
Cloud SQL for PostgreSQL verwendet Version 1.2.2.
tsm_system_rows Stellt die Stichprobenmethode SYSTEM_ROWS für Tabellen bereit, die in der TABLESAMPLE-Klausel eines SELECT-Befehls verwendet werden kann.
Cloud SQL for PostgreSQL verwendet Version 1.0.
tsm_system_time Stellt die Stichprobenmethode SYSTEM_TIME für Tabellen bereit, die in der TABLESAMPLE-Klausel eines SELECT-Befehls verwendet werden kann.
Cloud SQL for PostgreSQL verwendet Version 1.0.
unaccent Ein Wörterbuch für die Textsuche, das Akzente (diakritische Zeichen) von Lexemen entfernt.
Cloud SQL for PostgreSQL verwendet Version 1.1.
uuid-ossp Bietet Funktionen zum Generieren von UUIDs (Universally Unique Identifiers) mit einem von mehreren Standardalgorithmen.
Cloud SQL for PostgreSQL verwendet Version 1.1.

Weitere Informationen zu einigen PostgreSQL-Erweiterungen

In diesem Abschnitt werden weitere Informationen zu einigen der unterstützten PostgreSQL-Erweiterungen in den obigen Tabellen beschrieben.

auto_explain

Wenn Sie diese Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_auto_explain auf on. Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

Informationen zu Logging-Daten und ‑Ereignissen, die mit den Logs der Ausführungspläne verknüpft sind, die diese Erweiterung ermöglicht, finden Sie in der Cloud Logging-Dokumentation.

Alternativ können Sie bei einem Nutzer, der nur die Rolle cloudsqlsuperuser hat, den Befehl load verwenden, um diese Erweiterung für eine Sitzung zu laden.

Innerhalb einer Datenbanksitzung können Sie diese Erweiterung verwenden, um eine Verbindung zu PostgreSQL-Datenbanken herzustellen und Abfragen auszuführen.

Derzeit funktioniert diese Erweiterung für zwei Cloud SQL-Instanzen mit privater IP-Adresse innerhalb eines VPC-Netzwerks oder datenbankübergreifend innerhalb einer Instanz.

Weitere Informationen finden Sie unter dblink in der PostgreSQL-Dokumentation.

Wenn Sie eine Verbindung zu Datenbanken herstellen oder eine Verbindung zur gleichen Instanz wie ein anderer Nutzer herstellen möchten, müssen Sie ein Passwort angeben. Hier ein Beispiel-Snippet, das jedoch nicht für die Produktion verwendet wird:


  SELECT * FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select id, name from table' \
  ) AS t(id int, name text);

Wenn Sie nur eine Verbindung einrichten möchten, können Sie folgendes Code-Snippet als Beispiel verwenden (nicht für Produktionszwecke):

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

Um eine Verbindung zu derselben Instanz mit demselben Nutzer herzustellen, können Sie eine Verbindung ohne Passwort herstellen. Beispiel:

  1. Setzen Sie das folgende Datenbankflag, um lokale Verbindungen ohne Passwort zu aktivieren
    cloudsql.allow_passwordless_local_connections

  2. Stellen Sie eine Verbindung her, ohne einen Host anzugeben, was bedeutet, dass eine Verbindung zu derselben Instanz hergestellt wird. Hier ein Beispiel:

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    Das Ergebnis könnte etwa so aussehen:

          income
          --------
          1000
          (1 row)
    

Für das Herstellen einer Verbindung zu Datenbanken innerhalb einer Instanz können Sie für den Host nicht „localhost“ oder 127.0.0.1 festlegen. Verwenden Sie stattdessen die IP-Adresse, die in der Google Cloud Console für Ihre Instanz angezeigt wird.

Weitere Informationen finden Sie in diesem Dokument auch unter postgres_fdw und PL/Proxy.

pageinspect

Diese Erweiterung prüft den Inhalt von Datenbankseiten auf unterer Ebene. Weitere Informationen finden Sie in der PostgreSQL-Dokumentation unter pageinspect.

pg_bigm

Diese Erweiterung aktiviert die Volltextsuche und ermöglicht einen Zwei-Gramm-Index (bigram) für eine schnellere Volltextsuche.

Wenn Sie diese Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_pg_bigm auf on. Die folgenden Flags werden ebenfalls unterstützt:

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

pg_cron

Wenn Sie pg_cron für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_pg_cron auf on. Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

Die Jobs werden als Hintergrund-Worker konfiguriert. Daher müssen Sie möglicherweise Standard-PostgreSQL-Techniken wie das Flag max_worker_processes verwenden, um die Anzahl dieser Hintergrund-Worker anzupassen.

Für diese Erweiterung unterstützt Cloud SQL den Modus der Hintergrund-Worker, jedoch nicht die libpq-Schnittstelle. Daher ist eine vertrauenswürdige Authentifizierung, die diese Erweiterung direkt umfasst, nicht erforderlich.

pgfincore

Diese Erweiterung enthält Funktionen zum Verwalten von Seiten im Laufwerk-Cache des Betriebssystems von PostgreSQL. Weitere Informationen finden Sie in der Dokumentation zu pgfincore.

pg_freespacemap

Diese Erweiterung prüft die Free Space Map (FSM). Weitere Informationen finden Sie unter pg_freespacemap in der PostgreSQL-Dokumentation.

pg_hint_plan

Wenn Sie diese Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_pg_hint_plan auf on. Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

Alternativ können Sie für einen Nutzer mit der Rolle cloudsqlsuperuser den Befehl load verwenden, um diese Erweiterung für eine Sitzung zu laden.

pg_partman

Mit dieser Erweiterung können Sie zeitbasierte und serielle Tabellenpartitionen erstellen und verwalten.

Bei Cloud SQL umfasst diese Erweiterung nicht den Hintergrund-Worker für die automatische Partitionswartung. Stattdessen können Sie z. B. Cloud Scheduler verwenden, um die Wartung zu beschleunigen, indem Sie Wartungsfunktionen in regelmäßigen Abständen aufrufen.

pg_proctab

So aktivieren Sie mit der Erweiterung pg_proctab das Dienstprogramm pg_top:

  1. Führen Sie im psql-Tool den Befehl CREATE EXTENSION für pg_proctab aus.
  2. Laden Sie pg_top herunter und führen Sie es aus.
  3. Fügen Sie beim Herstellen einer Verbindung zu einer Cloud SQL for PostgreSQL-Instanz die Option -r hinzu, um eine Verbindung zu einer Remote-Datenbank herzustellen und Messwerte abzurufen.

Die folgenden instanzweiten Messwerte, die in der Ausgabe enthalten sind, umfassen die Nutzung durch andere unterstützende Agenten und Dienste in der Instanz:

  • Durchschnittliche Last
  • CPU-Status (% user, nice, system, idle und iowait)
  • Arbeitsspeicher (used, free und cached)

pg_repack

Mit dieser Erweiterung können Sie Bloat aus Tabellen und Indexen entfernen. Optional haben Sie die Möglichkeit, mit der Erweiterung ein Online-Clustering auszuführen (Tabellen nach Clusterindex sortieren). Weitere Informationen finden Sie in der Dokumentation zu pg_repack. Darüber hinaus ist für die Verwendung dieser Erweiterung in Cloud SQL ein spezielles Verfahren zum Hinzufügen von Berechtigungen für einen Nutzer erforderlich.

Wenn ein Nutzer außerhalb der Rolle cloudsqlsuperuser eine Erweiterung verwenden möchte, müssen Sie ihm cloudsqlsuperuser-Berechtigungen erteilen. Weitere Informationen finden Sie in diesem Dokument unter Anforderungen an Superuser-Berechtigungen. Im folgenden Beispiel geschieht dies mit dem Befehl GRANT.

Beispiel für das Hinzufügen von Berechtigungen

Im folgenden Beispiel ist csuper1 ein cloudsqlsuperuser und testdb eine Datenbank, die zu testuser gehört. Zum Erstellen der Erweiterung in testdb führen Sie die folgenden Befehle aus:

  1. Stellen Sie als cloudsqlsuperuser eine Verbindung zu testdb her:

    psql -U csuper1 -d testdb;
    
  2. Gewähren Sie csuper1 die Berechtigung des Datenbankinhabers testuser,:

    GRANT testuser TO csuper1;
    
  3. Erstellen Sie die Erweiterung:

    CREATE EXTENSION pg_repack;
    
  4. Führen Sie als csuper1 für eine Tabelle wie t1 in testdb den Befehl pg_repack aus:

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Wenn der pg_repack-Job abgeschlossen ist, widerrufen Sie die in Schritt 2 gewährte Berechtigung:

     REVOKE testuser FROM csuper1;
    

Der Befehl pg_repack kann mit dem folgenden Fehler fehlschlagen:
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Wenn dieser Fehler auftritt, legen Sie für TCP-Keepalives einen kleineren Wert fest und führen Sie dann den Befehl pg_repack aus. Weitere Informationen finden Sie unter Zeitüberschreitung von Verbindungen (von Compute Engine).

pg_squeeze

Mit dieser Erweiterung wird nicht verwendeter Speicherplatz aus einer Tabelle entfernt und optional ein Index verwendet, um Tupel der Tabelle zu sortieren. Wenn Sie die Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_pg_squeeze auf on.

Diese Erweiterung unterstützt auch die logische Decodierung durch Schreiben zusätzlicher Informationen in das Write-Ahead-Log (WAL). Wenn Sie diese Funktion für die Erweiterung aktivieren möchten, setzen Sie den Konfigurationsparameter wal_level auf logical oder höher, indem Sie das Flag cloudsql.logical_decoding auf on setzen.

Für die Erweiterung muss ein Wert für das Flag max_replication_slots festgelegt werden. Wenn Sie keinen Wert für dieses Flag angegeben haben, legen Sie den Wert auf 1 fest. Andernfalls addieren Sie dem für das Flag festgelegten Wert 1.

Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

pgtt

Wenn Sie diese Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag pgtt.enabled auf on. Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

pg_visibility

Mit dieser Erweiterung können Sie die Sichtbarkeitskarte (Visibility Map, VM) und die Sichtbarkeitsinformationen einer Tabelle auf Seitenebene prüfen. Weitere Informationen finden Sie unter pg_visibility in der PostgreSQL-Dokumentation.

PL/Proxy

Diese Erweiterung ist ein Handler für prozedurale Sprachen, der Remote-Prozeduraufrufe zwischen PostgreSQL-Datenbanken mit optionaler Fragmentierung ermöglicht.

Weitere Informationen finden Sie in der PL/Proxy-Dokumentation.

Die Zielinstanzen für Verbindungen müssen sich im selben VPC-Netzwerk wie die Instanz befinden, von der die Verbindung ausgeht. Außerdem können Sie in der Google Cloud Console für Clusterinstanzen nicht die Schaltfläche Nur SSL-Verbindungen zulassen auswählen.

Für das Herstellen einer Verbindung zu Datenbanken innerhalb einer Instanz können Sie für den Host nicht „localhost“ oder 127.0.0.1 festlegen. Verwenden Sie stattdessen die IP-Adresse, die in der Google Cloud Console für Ihre Instanz angezeigt wird.

Weitere Informationen finden Sie in diesem Dokument auch unter postgres_fdw und dblink.

postgresql_anonymizer

Wenn Sie diese Erweiterung für eine Instanz verwenden möchten, setzen Sie das Flag cloudsql.enable_anon auf on. Informationen zum Festlegen von Flags und zum Prüfen der für diese Erweiterung unterstützten Flags finden Sie unter Datenbank-Flags konfigurieren.

postgres_fdw

Mit dieser Erweiterung lassen sich Tabellen aus anderen (externen) PostgreSQL-Datenbanken als externe Tabellen in der aktuellen Datenbank bereitstellen. Diese Tabellen können dann beinahe genauso verwendet werden wie lokale Tabellen. Weitere Informationen finden Sie unter postgres_fdw in der PostgreSQL-Dokumentation.

Diese Erweiterung funktioniert für zwei Cloud SQL-Instanzen mit privater IP-Adresse innerhalb eines VPC-Netzwerks oder datenbankübergreifend innerhalb einer Instanz.

Für das Herstellen einer Verbindung zu Datenbanken innerhalb einer Instanz können Sie für den Host nicht „localhost“ oder 127.0.0.1 festlegen. Verwenden Sie stattdessen die IP-Adresse, die in der Google Cloud Console für Ihre Instanz angezeigt wird.

Außerdem können Sie für eine Instanz, in der externe Daten gespeichert werden, in der Google Cloud Console die Option Nur SSL-Verbindungen zulassen auswählen. Sie können die Option Vertrauenswürdige Clientzertifikate erforderlich nicht auswählen. Nur cloudsqlsuperuser können Inhaber eines externen postgres_fdw-Daten-Wrapper sein.

Weitere Informationen finden Sie in diesem Dokument auch unter PL/Proxy und dblink.

postgresql-hll

Diese Erweiterung bietet den neuen Datentyp hll für eine HyperLogLog-Datenstruktur. Weitere Informationen finden Sie in der postgresql-hll-Dokumentation.