Freigeben über


Verwalten von PostgreSQL-Erweiterungen

GILT FÜR: Azure Database for PostgreSQL – Flexibler Server

Azure Database for PostgreSQL – Flexibler Server bietet die Möglichkeit zum Erweitern der Funktionalität von Datenbanken mithilfe von Erweiterungen. Bei Erweiterungen werden mehrere zusammengehörige SQL-Objekte zu einem Paket gebündelt und mit nur einem Befehl in die Datenbank geladen oder daraus entfernt. Nach dem Laden in die Datenbank funktionieren Erweiterungen genauso wie integrierte Features.

Erweiterungen zulassen

Bevor Sie Erweiterungen in Azure Database for PostgreSQL – Flexibler Server installieren, müssen Sie diese Erweiterungen in die Positivliste aufnehmen.

Verwenden des Azure-Portals:

  1. Wählen Sie Ihre Instanz von Azure Database for PostgreSQL – Flexible Server aus.

  2. Wählen Sie im Ressourcenmenü unter dem Abschnitt Einstellungen die Option Serverparameter aus.

  3. Wählen Sie die Erweiterungen, die Sie auf die Positivliste setzen möchten, aus den Erweiterungen aus, die im Parameter azure.extensions verfügbar sind, und wählen Sie Speichern aus.

    Screenshot der Positivliste.

Laden von Bibliotheken

shared_preload_libraries ist ein Serverkonfigurationsparameter, der bestimmt, welche Bibliotheken beim Starten von Azure Database for PostgreSQL – Flexible Server geladen werden sollen. Alle Bibliotheken, die freigegebenen Speicher verwenden, müssen über diesen Parameter geladen werden. Wenn Ihre Erweiterung freigegebenen, im Voraus geladenen Bibliotheken hinzugefügt werden muss, führen Sie die folgenden Schritte aus:

Verwenden des Azure-Portals:

  1. Wählen Sie Ihre Instanz von Azure Database for PostgreSQL – Flexible Server aus.

  2. Wählen Sie im Ressourcenmenü unter dem Abschnitt Einstellungen die Option Serverparameter aus.

  3. Fügen Sie die Bibliotheken hinzu, die Sie dem Wert von shared_preload_libraries hinzufügen möchten, und wählen Sie Speichern aus.

    Screenshot der Seite Serverparameter beim Definieren von shared_preload_libraries.

  4. Da shared_preload_libraries ein statischer Serverparameter ist, ist ein Neustart des Servers erforderlich, damit die Änderungen wirksam werden.

    Screenshot der Seite Serverparameter mit dem Dialogfeld, mit dem Sie Änderungen speichern und den Neustart ausführen können.

Erstellen von Erweiterungen

Nachdem eine Erweiterung auf die Positivliste gesetzt und auch zu shared_load_libraries hinzugefügt wurde, falls die Erweiterung dies erfordert, kann sie in jeder Datenbank erstellt oder installiert werden, auf der sie verwendet werden soll.

  1. Um eine Erweiterung zu erstellen, muss ein Benutzer Mitglied der azure_pg_admin-Rolle sein.

  2. Führen Sie den Befehl CREATE EXTENSION aus, um eine bestimmte Erweiterung zu erstellen oder zu installieren. Dieser Befehl lädt die Objektpakete in Ihre Datenbank.

Hinweis

Erweiterungen von Drittanbietern, die in Azure Database for PostgreSQL – Flexible Server angeboten werden, sind Open Source-lizenzierter Code. Wir bieten keine Erweiterungen oder Erweiterungsversionen von Drittanbietern mit Premium- oder proprietären Lizenzierungsmodellen an.

Die flexible Serverinstanz von Azure Database for PostgreSQL unterstützt eine Teilmenge der wichtigsten PostgreSQL-Erweiterungen, wie unter Unterstützte Erweiterungen nach Namen oder Unterstützte Erweiterungen nach Version von PostgreSQL aufgeführt. Sie können diese Informationen auch abrufen, indem Sie SHOW azure.extensions; ausführen. Erweiterungen, die in diesen Listen nicht aufgeführt sind, werden für Azure Database for PostgreSQL – Flexibler Server nicht unterstützt. Sie können in Azure Database for PostgreSQL – Flexibler Server keine eigenen Erweiterungen erstellen oder laden.

Erweiterungen löschen

Um eine Erweiterung zu löschen, stellen Sie zunächst sicher, dass Sie diese auf die Positivliste setzen.

  1. Um eine Erweiterung zu löschen, muss ein Benutzer Mitglied der Rolle azure_pg_admin sein.

  2. Führen Sie den Befehl DROP EXTENSION aus, um eine bestimmte Erweiterung zu löschen oder zu deinstallieren. Mit diesem Befehl werden die in der Erweiterung verpackten Objekte aus Ihrer Datenbank gelöscht.

Aktualisieren von Erweiterungen

Verwenden Sie den folgenden SQL-Befehl, um eine installierte Erweiterung auf die neueste verfügbare Version zu aktualisieren, die von Azure unterstützt wird:

ALTER EXTENSION <extension_name> UPDATE;

Mit diesem Befehl wird die Verwaltung von Datenbankerweiterungen vereinfacht, indem Benutzer ein manuelles Upgrade auf die neueste Version durchführen können, die von Azure genehmigt wurde, wodurch Kompatibilität und Sicherheit verbessert werden.

Begrenzungen

Während das Aktualisieren von Erweiterungen unkompliziert ist, gibt es bestimmte Einschränkungen:

  • Auswahl einer spezifischen Version: Der Befehl unterstützt keine Aktualisierung auf Zwischenversionen einer Erweiterung.

  • Herabstufen: Unterstützt das Herabstufen einer Erweiterung auf eine frühere Version nicht. Wenn eine Herabstufung erforderlich ist, ist möglicherweise Support erforderlich. Die Herabstufung hängt von der Verfügbarkeit einer vorherigen Version ab.

Installierte Erweiterungen anzeigen

Verwenden Sie den folgenden SQL-Befehl, um die derzeit in Ihrer Datenbank installierten Erweiterungen aufzulisten:

SELECT * FROM pg_extension;

Mögliche Fehler:

Die Erweiterung „%s“ ist für „azure_pg_admin“-Benutzer in Azure Database for PostgreSQL nicht auf der Positivliste

Dieser Fehler tritt auf, wenn Sie einen CREATE EXTENSION- oder DROP EXTENSION-Befehl ausführen, der auf eine Erweiterung verweist, die nicht auf der Positivliste ist, oder auf eine Erweiterung, die noch nicht in der Instanz der Azure-Datenbank für flexible Server unterstützt wird, auf der Sie den Befehl ausführen.

Nur Mitglieder von „azure_pg_admin“ dürfen den Befehl CREATE EXTENSION verwenden

Dieser Fehler tritt auf, wenn der Benutzer, der einen CREATE EXTENSION-Befehl ausführt, kein Mitglied der Rolle azure_pg_admin ist.

Nur Mitglieder von „azure_pg_admin“ dürfen den Befehl DROP EXTENSION verwenden

Dieser Fehler tritt auf, wenn der Benutzer, der einen DROP EXTENSION-Befehl ausführt, kein Mitglied der Rolle azure_pg_admin ist.