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