Direkt zum Inhalt

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 PostgreSQL-DB-Instance. Ich möchte den Fehler „ERROR:  <module/extension> must be loaded via shared_preload_libraries“ beheben.

Kurzbeschreibung

Wenn du Amazon RDS für PostgreSQL verwendest, kannst du gemeinsam genutzte Bibliotheken vorab auf den Server laden. So kannst du zusätzliche Funktionen laden oder Leistungsvorteile erzielen. Möglicherweise erhältst du jedoch die folgende Fehlermeldung, wenn du das Modul bzw. die Erweiterung verwendest:

„ERROR: <module/extension> must be loaded via shared_preload_libraries“

Wenn du beispielsweise pg_stat_statements abfragst, 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, setze den Wert von shared_preload_libraries in einer benutzerdefinierten Parametergruppe, die deiner DB-Instance zugeordnet ist, auf pg_stat_statements.

Ändere 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
  • pg_stat_statements
  • pg_transport
  • plprofiler

Hinweis: Du kannst Parameterwerte in einer benutzerdefinierten Parametergruppe ändern. Die Parameterwerte in einer Standard-DB-Parametergruppe kannst du nicht ändern. Wenn du Änderungen an Parametern in einer benutzerdefinierten Parametergruppe vornehmen, gelten deine Änderungen für alle DB-Instances, die dieser Parametergruppe zugeordnet sind.

Lösung

Benutzerdefinierte Parametergruppe erstellen

Hinweis: Wenn du bereits eine benutzerdefinierte Parametergruppe hast, fahre mit dem nächsten Schritt fort.

  1. Melde dich bei der Aurora- und RDS-Konsole an.
  2. Wähle im Navigationsbereich Parametergruppen aus.
  3. Wähle Create parameter group (Parametergruppe erstellen) aus.
  4. Wähle in der Liste der Parameter group family (Parametergruppenfamilie) eine DB parameter group family (DB-Parametergruppenfamilie) aus.
  5. Gib im Feld Group name (Gruppenname) den Namen der neuen DB-Parametergruppe ein.
  6. Gib im Feld Description (Beschreibung) eine Beschreibung für die neue DB-Parametergruppe ein.
  7. Wähle Create (Erstellen) aus.

Parameter in der benutzerdefinierten Parametergruppe ändern

  1. Melde dich bei der Aurora- und RDS-Konsole an.
  2. Wähle im Navigationsbereich Parametergruppen aus.
  3. Wähle in der Liste die Parametergruppe aus, die du ändern möchtest.
  4. Wähle für Parameter group actions (Parametergruppenaktionen) die Option Edit (Bearbeiten) aus.
  5. Ändere die Werte des Parameters shared_preload_libraries.
  6. Wähle Save Changes (Änderungen speichern) aus.

Hinweis: Der Parameter shared_preload_libraries ist ein statischer Parameter. Wenn du einen statischen Parameter änderst und die DB-Parametergruppe speicherst, tritt die Parameteränderung in Kraft, nachdem du die DB-Instance manuell neu gestartet hast.

Die Parametergruppe mit deiner DB-Instance verknüpfen

Hinweis: Wenn deine benutzerdefinierte Parametergruppe bereits mit deiner DB-Instance verknüpft ist, fahre mit dem nächsten Schritt fort.

Ändere deine DB-Instance, um die benutzerdefinierte Parametergruppe mit deiner DB-Instance zu verknüpfen.

Die DB-Instance neu starten

Wichtig: Nachdem du die mit einer DB-Instance verknüpfte DB-Parametergruppe geändert hast, musst du die DB-Instance manuell neu starten. Das muss geschehen, bevor die DB-Instance die neue DB-Parametergruppe verwendet.

Verwende die Aurora- und RDS-Konsole, um deine DB-Instance neu zu starten. Oder du kannst 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