Wie kann ich den Fehler „ERROR: ˂module/extension˃ must be loaded via shared_preload_libraries“ beheben?

Lesedauer: 3 Minute
0

Ich habe einen Amazon Relational Database Service (Amazon RDS) für eine PostgreSQL-DB-Instance. Ich möchte den Fehler „ERROR: <module/extension> must be loaded via shared_preload_libraries“ beheben.

Kurzbeschreibung

Wenn Sie Amazon RDS für PostgreSQL verwenden, können Sie gemeinsam genutzte Bibliotheken vorab auf den Server laden. So können Sie zusätzliche Funktionen laden oder Leistungsvorteile erzielen. Möglicherweise erhalten Sie jedoch die folgende Fehlermeldung, wenn Sie das Modul bzw. die Erweiterung verwenden:

„FEHLER: <module/extension> muss über shared_preload_libraries geladen werden“

Wenn Sie beispielsweise pg_stat_statements abfragen, kann die folgende Fehlermeldung angezeigt werden:

postgres=> SELECT * FROM pg_stat_statements;
ERROR:  relation "pg_stat_statements" does not exist
postgres=> CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION

postgres=> SELECT * FROM pg_stat_statements;
ERROR:  pg_stat_statements must be loaded via shared_preload_libraries

Um diesen Fehler zu beheben und pg_stat_statements abzufragen, setzen Sie den Wert von shared_preload_libraries in einer benutzerdefinierten Parametergruppe, die Ihrer DB-Instance zugeordnet ist, auf pg_stat_statements.

Ändern Sie den Wert des Parameters shared_preload_libraries in einer benutzerdefinierten Parametergruppe, um die folgenden Module/Erweiterungen in RDS für PostgreSQL zu verwenden:

  • auto_explain
  • orafce
  • pgaudit
  • pglogical
  • pg_hint_plan
  • pg_prewarm
  • pg_similarity
  • _stat_statements
  • pg_transport
  • plprofiler

Hinweis: Sie können Parameterwerte in einer benutzerdefinierten Parametergruppe ändern. Die Parameterwerte in einer Standard-DB-Parametergruppe können Sie nicht ändern. Wenn Sie Änderungen an Parametern in einer benutzerdefinierten Parametergruppe vornehmen, gelten Ihre Änderungen für alle DB-Instances, die dieser Parametergruppe zugeordnet sind.

Lösung

Benutzerdefinierte Parametergruppe erstellen

Hinweis: Wenn Sie bereits eine benutzerdefinierte Parametergruppe haben, fahren Sie mit dem nächsten Schritt fort.

  1. Melden Sie sich bei der Amazon-RDS-Konsole an.
  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus.
  3. Wählen Sie Create parameter group (Parametergruppe erstellen) aus.
  4. Wählen Sie in der Liste der Parameter group family (Parametergruppenfamilie) eine DB parameter group family (DB-Parametergruppenfamilie) aus.
  5. Geben Sie im Feld Group name (Gruppenname) den Namen der neuen DB-Parametergruppe ein.
  6. Geben Sie im Feld Description (Beschreibung) eine Beschreibung für die neue DB-Parametergruppe ein.
  7. Wählen Sie Create (Erstellen).

Parameter in der benutzerdefinierten Parametergruppe ändern

  1. Melden Sie sich bei der Amazon-RDS-Konsole an.
  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus.
  3. Wählen Sie in der Liste die Parametergruppe aus, die Sie ändern möchten.
  4. Wählen Sie für Parameter group actions (Parametergruppenaktionen) die Option Edit (Bearbeiten) aus.
  5. Ändern Sie die Werte des Parameters shared_preload_libraries.
  6. Wählen Sie Save Changes (Änderungen speichern).

**Hinweis:**Der Parameter shared_preload_libraries ist ein statischer Parameter. Wenn Sie einen statischen Parameter ändern und die DB-Parametergruppe speichern, tritt die Parameteränderung in Kraft, nachdem Sie die DB-Instance manuell neu gestartet haben.

Die Parametergruppe mit Ihrer DB-Instance verknüpfen

Hinweis: Wenn Ihre benutzerdefinierte Parametergruppe bereits mit Ihrer DB-Instance verknüpft ist, fahren Sie mit dem nächsten Schritt fort.

Ändern Sie Ihre DB-Instance, um die benutzerdefinierte Parametergruppe mit Ihrer DB-Instance zu verknüpfen.

Die DB-Instance neu starten

Wichtig: Nachdem Sie die mit einer DB-Instance verknüpfte DB-Parametergruppe geändert haben, müssen Sie die DB-Instance manuell neu starten. Das muss geschehen, bevor die DB-Instance die neue DB-Parametergruppe verwendet.

Verwenden Sie die Amazon-RDS-Konsole, um Ihre DB-Instance neu zu starten. Oder Sie können den API-Vorgang RebootDBInstance explizit aufrufen (ohne Failover, wenn sich die DB-Instance in einer Multi-AZ-Bereitstellung befindet).

Ähnliche Informationen

PostgreSQL-Dokumentation für pg_stat_statements (auf der PostgreSQL-Website)

Arbeiten mit Parametergruppen