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:
- Führen Sie dazu im psql-Tool den Befehl CREATE EXTENSION aus.
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:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
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 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. |
pgvector |
Eine Open-Source-Erweiterung zum Speichern und Suchen von Vektoreinbettungen in PostgreSQL-Datenbanken. |
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 ( 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.
dblink
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.
Verbindung mit Passwort über dblink herstellen
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');
Verbindung ohne Passwort über dblink herstellen
Um eine Verbindung zu derselben Instanz mit demselben Nutzer herzustellen, können Sie eine Verbindung ohne Passwort herstellen. Beispiel:
Setzen Sie das folgende Datenbankflag, um lokale Verbindungen ohne Passwort zu aktivieren
cloudsql.allow_passwordless_local_connections
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:
- Führen Sie im psql-Tool den Befehl CREATE EXTENSION für pg_proctab aus.
- Laden Sie pg_top herunter und führen Sie es aus.
- 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:
Stellen Sie als
cloudsqlsuperuser
eine Verbindung zutestdb
her:psql -U csuper1 -d testdb;
Gewähren Sie
csuper1
die Berechtigung des Datenbankinhaberstestuser,
:GRANT testuser TO csuper1;
Erstellen Sie die Erweiterung:
CREATE EXTENSION pg_repack;
Führen Sie als
csuper1
für eine Tabelle wiet1
intestdb
den Befehlpg_repack
aus:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
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.