PostgreSQL DB 인스턴스 Amazon Relational Database Service(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 인스턴스에 변경 내용이 적용됩니다.
해결 방법
사용자 지정 파라미터 그룹 생성
참고: 이미 사용자 지정 파라미터 그룹이 있다면 다음 단계로 건너뜁니다.
- 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 배포인 경우 장애 조치 없이).
관련 정보
PostgreSQL documentation for pg_stat_statements(PostgreSQL 웹 사이트 참조)
파라미터 그룹에서 작업