PostgreSQL DB インスタンス用の Amazon Relational Database Service (Amazon RDS) を利用しています。「エラー:<module/extension> shared_preload_libraries 経由でロードする必要があります」というエラーのトラブルシューティングをしたいのですが。
簡単な説明
Amazon RDS for PostgreSQL を使用する場合、共有ライブラリをサーバーにプリロードできます。これにより、追加の機能をロードしたり、パフォーマンスを向上させることができます。ただし、モジュール/拡張機能を使用すると、次のエラーが表示される場合があります。
「エラー: <module/extension> shared_preload_libraries 経由でロードする必要があります」
たとえば、** pg\ _stat\ _statements をクエリすると**、次のエラーが表示されることがあります。
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
このエラーを解決して pg_stat_statementsをクエリするには、DB インスタンスに関連付けられているカスタムパラメータグループの shared_preload_libraries の値を pg_stat_statements に設定します。
RDS for PostgreSQL で次のモジュール/拡張機能を使用するように、カスタムパラメータグループ内の shared_preload_libraries の値を変更します。
- auto_explain
- orafce
- pgaudit
- pglogical
- pg_hint_plan
- pg_prewarm
- pg_similarity
- pg_stat_statements
- pg_transport
- plprofiler
**注:**カスタムパラメータグループのパラメータ値を変更できます。デフォルトの DB パラメータグループのパラメータ値は変更できません。カスタムパラメータグループのパラメータを変更すると、そのパラメータグループに関連付けられているすべての DB インスタンスに変更が適用されます。
解決策
カスタムパラメータグループの作成
**注:**カスタムパラメータグループが既にある場合は、次の手順に進んでください。
- Amazon RDS コンソールにログインします。
- ナビゲーションペインで、[パラメータグループ] を選択します。
- [パラメータグループの作成] を選択します。
- パラメータグループファミリーリストで、** DB パラメータグループファミリー**を選択します。
- 「グループ名」ボックスに、新しい DB パラメータグループの名前を入力します。
- 「説明」ボックスに、新しい DB パラメータグループの説明を入力します。
- [作成] を選択します。
カスタムパラメータグループのパラメータを変更
- Amazon RDS コンソールにログインします。
- ナビゲーションペインで、[パラメータグループ] を選択します。
- リストから、変更するパラメータグループを選択します。
- パラメータグループアクションでは、[編集] を選択します。
- パラメータ shared_preload_libraries の値を変更します。
- [変更の保存] を選択します。
**注:**shared_preload_libraries パラメータは静的パラメータです。静的パラメータを変更して DB パラメータグループを保存すると、手動でDB インスタンスを再起動した後にパラメータの変更が有効になります。
パラメータグループを DB インスタンスに関連付ける
**注:**カスタムパラメータグループが既に DB インスタンスに関連付けられている場合は、次のステップに進んでください。
DB インスタンスを変更して、カスタムパラメータグループを DB インスタンスに関連付けます。
DB インスタンスを再起動
**重要:**DB インスタンスに関連付けられた DB パラメータグループを変更したら、DB インスタンスを手動で再起動する必要があります。DB インスタンスが新しい DB パラメータグループを使用する前にこれを行う必要があります。
Amazon RDS コンソールを使用して DB インスタンスを再起動します。または、**RebootDBInstance ** API オペレーションを明示的に呼び出すこともできます (DB インスタンスがマルチ AZ 配置にある場合は、フェイルオーバーなしで)。
関連情報
pg_stat_statements 用の PostgreSQL ドキュメント (PostgreSQL ウェブサイトにあります)
パラメータグループでの作業