shared_preload_libraries
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | postmaster (재시작) | string |
| 15 | — | postmaster (재시작) | string |
| 16 | — | postmaster (재시작) | string |
| 17 | — | postmaster (재시작) | string |
| 18 | — | postmaster (재시작) | string |
| 19 | — | postmaster (재시작) | string |
서버 시작 시점에 미리 로드할 shared library 목록을 정한다. pg_stat_statements처럼 서버 수준에서 동작하는 extension 상당수가 이 파라미터에 등록을 요구한다.
값은 쉼표로 구분한 라이브러리 이름 목록이며, 각 이름은 LOAD 명령과 같은 방식으로 해석된다. 서버 시작 시에만 설정할 수 있고, 지정한 라이브러리를 찾지 못하면 서버가 시작 자체에 실패한다.
shared memory 할당, lightweight lock 예약, background worker 시작처럼 postmaster 시작 시점에만 가능한 작업이 필요한 라이브러리는 반드시 이 파라미터로 로드해야 한다. 그 외의 라이브러리도 preload할 수는 있다 — 첫 사용 시점의 로드 시간을 아끼는 대신, 해당 라이브러리를 전혀 쓰지 않는 server process까지 시작이 조금씩 느려질 수 있으므로 대부분의 세션에서 쓰일 라이브러리에만 권장한다. 변경에 서버 재시작이 필요하므로 단기 디버깅 용도라면 session_preload_libraries가 적합하다.
운영 노트: 오타가 있거나 설치되지 않은 라이브러리를 넣으면 다음 재시작 때 서버가 올라오지 않는다. 값을 바꿀 때는 라이브러리 파일이 실제로 설치돼 있는지 먼저 확인하고, 재시작이 필요한 만큼 점검 일정에 맞춰 적용한다. extension을 추가·제거할 때 이 목록을 함께 정리하지 않으면 한참 뒤 엉뚱한 시점의 기동 실패로 드러나기 쉽다.
출처: PostgreSQL 18 문서