FILE LOCATIONS
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
data_directory | ‘ConfigDir’ | 데이터 저장소에 사용할 디렉터리를 지정합니다. | 서버 시작 시에만 설정 가능 |
hba_file | ‘ConfigDir/pg_hba.conf’ | 기본 서버 구성 파일 (일반적으로 postgresql.conf ) 을 지정합니다. | 서버 시작 시에만 설정 가능 |
ident_file | ‘ConfigDir/pg_ident.conf’ | 사용자 이름 매핑을 위한 구성 파일 ( 일반적으로 pg_ident.conf) 을 지정합니다. | 서버 시작 시에만 설정 가능 |
CONNECTIONS AND AUTHENTICATION
Connection Settings
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
listen_address | localhost | 서버가 클라이언트 응용 프로그램의 연결을 수신할 TCP/IP 주소를 지정합니다. 이 값은 쉼표로 구분된 호스트 이름 및/또는 숫자 IP 주소 목록의 형식을 취합니다. | |
• ‘*’ : 사용 가능한 모든 IP 인터페이스에 대해 연결 가능 | |||
• ‘0.0.0.0’ : 모든 IPv4 주소에 대해 연결 가능 | |||
• ‘::’ : 모든 IPv6 주소에 대해 연결 가능 | 서버 시작 시에만 설정 가능 | ||
port | 5432 | 서버가 청취하는 TCP 포트.서버가 수신하는 모든 IP 주소에 동일한 포트 번호가 사용됩니다. | 서버 시작 시에만 설정 가능 |
max_connections | 100 | 데이터베이스 서버에 대한 최대 동시 연결 수를 결정합니다. standby 서버를 실행할 때 이 파라미터를 primary 서버보다 같거나 더 높은 값으로 설정해야 합니다. 그렇지 않으면 standby 서버에서 쿼리가 허용되지 않습니다. | 서버 시작 시에만 설정 가능 |
superuser_reserved_connections | 3 | PostgreSQL 수퍼유저 의 연결을 위해 예약된 연결 “슬롯” 의 수를 결정합니다. active 동시 연결 수가 max_connections에서superuser_reserved_connections를 뺀 값이면 항상 슈퍼 유저에 대해서만 새 연결이 허용되고 새 replication 연결은 허용되지 않습니다. max_connections 보다 작아야합니다. | 서버 시작 시에만 설정 가능 |
unix_socket_directories | ‘/tmp’ | 서버가 클라이언트 응용 프로그램의 연결을 수신하는 Unix 도메인 소켓의 디렉터리를 지정합니다. | 서버 시작 시에만 설정 가능 |
Authentication
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
authentication_timeout | 1m | 클라이언트 인증을 완료하는 데 허용되는 최대 시간입니다. 예상 클라이언트가 이 시간 동안 인증 프로토콜을 완료하지 않으면 서버는 연결을 닫습니다. 이렇게 하면 중단된 클라이언트가 무한정 연결을 점유하는 것을 방지할 수 있습니다. 이 값을 단위 없이 지정하면 초로 간주됩니다. | ALTER SYSTEM 커맨드 또는 |
config 파일 reload로 설정 | |||
password_encryption | scram-sha-256 | CREATE ROLE 또는 ALTER ROLE 에 비밀번호가 지정된 경우 이 매개변수는 비밀번호를 암호화하는 데 사용할 알고리즘을 결정합니다. 가능한 값은 scram-sha-256SCRAM-SHA-256으로 암호를 암호화하고 md5암호를 MD5 해시로 저장하는 입니다. | ALTER SYSTEM 커맨드 또는 |
config 파일 reload로 설정 |
RESOURCE USAGE (except WAL)
Memory
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
shared_buffers | 128MB | 데이터베이스 서버가 공유 메모리 버퍼에 사용하는 메모리 양을 설정합니다. 최소값은 128KB 이지만 좋은 성능을 위해서는 일반적으로 최소값보다 훨씬 높은 설정이 필요합니다. RAM이 1GB 이상인 전용 데이터베이스 서버가 있는 경우 shared_buffers의 적절한 시작 값은 시스템 메모리의 25%입니다. shared_buffer에 대한 더 큰 설정이 효과적일 수도 있지만, 이 또한 운영 체제 캐시에 의존하므로 RAM의 40% 이상을 shared_buffers에 할당하는 것은 권장하지 않습니다. shared_buffers에 대한 설정이 클수록 일반적으로 max_wal_size의 증가도 필요합니다. | 서버 시작 시에만 설정 가능 |
temp_buffers | 8MB | 각 데이터베이스 세션 내에서 임시 버퍼에 사용되는 최대 메모리 양을 설정합니다. 이들은 임시 테이블에 대한 액세스에만 사용되는 세션 로컬 버퍼입니다. | 개별 세션 내에서 변경할 수 있지만 세션 내에서 임시 테이블을 처음 사용하기 전에만 변경할 수 있습니다 |
work_mem | 4MB | 임시 디스크 파일에 쓰기 전에 쿼리 작업(예: 정렬 또는 해시 테이블)에서 사용할 기본 최대 메모리 양을 설정합니다. 일반적으로 각 작업은 임시 파일에 데이터 쓰기를 시작하기 전에 이 값이 지정하는 만큼의 메모리를 사용할 수 있습니다. 또한 여러 실행 세션에서 이러한 작업을 동시에 수행하면서 사용되는 총 메모리는 work_mem 값의 몇 배가 될 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
maintenance_work_mem | 64MB | VACUM, CREATE INDEX, ALTER TABLE ADD Foreign KEY와 같은 유지 관리 작업에 사용할 최대 메모리 양을 지정합니다. 이러한 작업 중 하나만 데이터베이스 세션에서 한 번에 실행할 수 있고 설치 시에는 동시에 실행되는 작업이 많지 않으므로 이 값을 work_mem보다 훨씬 크게 설정하는 것이 안전합니다. 설정값이 클수록 vacuuming 및 데이터베이스 덤프 복원에 대한 성능이 향상될 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
autovacuum_work_mem | -1 | 각 autovacuum worker 프로세스에서 사용할 최대 메모리 양을 지정합니다. -1은 maintenance_work_mem 값을 대신 사용해야 함을 나타냅니다. | ALTER SYSTEM 커맨드 또는config 파일 reload로 설정 |
dynamic_shared_memory_type | 플랫폼의 기본값 | 서버에서 사용할 동적 공유 메모리 구현을 지정합니다. 가능한 값은 아래와 같습니다. • posix : shm_open을 사용하여 할당된 POSIX 공유 메모리의 경우 • sysv : shmget을 통해 할당된 시스템 V 공유 메모리의 경우 • window : Windows 공유 메모리의 경우 • mmap : 데이터 디렉토리에 저장된 메모리 매핑 파일을 사용하여 공유 메모리를 시뮬레이션하는 경우 | 서버 시작 시에만 설정 가능 |
Background Writer
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
bgwriter_delay | 200ms | bgwriter 기록 간 sleep 시간을 의미합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
bgwriter_lru_maxpages | 100 | 각 라운드에서 background writer는 이 버퍼 수 이상을 쓰지 않습니다. 이것을 0으로 설정하면 백그라운드 쓰기가 비활성화됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Asynchronous Behavior
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
max_worker_processes | 8 | 시스템이 지원할 수 있는 최대 백그라운드 프로세스 수를 설정합니다. standby 서버를 실행할 때 이 매개변수를 primary 서버보다 같거나 더 높은 값으로 설정해야 합니다. 그렇지 않으면 standby 서버에서 쿼리가 허용되지 않습니다. | 서버 시작 시에만 설정 가능 |
max_parallel_workers_per_gather | 2 | 단일 Gather또는 Gather Merge노드에서 시작할 수 있는 최대 worker 수를 설정합니다. 병렬 작업자는 max_parallel_workers 에 의해 제한되는 max_worker_processes 에 의해 설정된 프로세스 풀에서 가져옵니다. 이 값을 0으로 설정하면 병렬 쿼리 실행이 비활성화됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
max_parallel_maintenance_workers | 2 | 단일 유틸리티 명령으로 시작할 수 있는 최대 병렬 작업자 수를 설정합니다. 현재 병렬 작업자의 사용을 지원하는 병렬 유틸리티 명령은 CREATE INDEX 를 사용하여 B-Tree 인덱스를 작성할 때 및 FULL 옵션이 없는 VACUM입니다. 병렬 작업자는 max_worker_processes에 의해 설정된 프로세스 풀에서 가져오지만 max_parallel_workers에 의해 제한됩니다. 이 값을 0으로 설정하면 유틸리티 명령에서 병렬 작업자를 사용할 수 없습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
max_parallel_workers | 8 | 시스템에서 병렬 작업을 지원할 수 있는 최대 작업자 수를 설정합니다. max_worker_processes 로부터 설정된 worker process pool 에서 parallel worker를 가져오기 때문에이 파라미터를 max_worker_processes 보다 높게 설정하면 아무런 변화가 없습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
WRITE-AHEAD LOG
Settings
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
wal_level | replica | WAL에 기록되는 정보의 양을 결정합니다. 사용 가능한 값은 다음과 같습니다. • replica : standby 서버에서 READ-ONLY 쿼리를 실행하는 것을 포함하여 WAL 보관 및 복제를 지원하기에 충분한 데이터를 기록합니다. • minimal : 충돌 또는 즉시 종료로부터 복구하는 데 필요한 정보를 제외한 모든 로깅을 제거합니다. • logical : 논리적 디코딩을 지원하는 데 필요한 정보를 추가합니다. | 서버 시작 시에만 설정 가능 |
fsync | on | fsync() 시스템 호출과 같은 방법을 실행하여 업데이트가 디스크에 물리적으로 기록되는지 확인합니다. 이렇게 하면 운영 체제 또는 하드웨어 충돌 후 데이터베이스 클러스터가 일관된 상태로 복구될 수 있습니다. | 서버 시작 시에만 설정 가능 |
synchronous_commit | on | 데이터베이스 서버가 클라이언트에 “sucess” 표시를 return하기 전에 WAL 처리를 완료해야 하는 시간을 지정합니다. 데이터 내구성과 관련하여 트랜잭션 커밋의 동작을 제어합니다. 사용 가능한 값은 다음과 같습니다. • remote_apply : 트랜잭션이 커밋되었는지 확인하기 전에 primary 노드의 커밋 로그에 데이터가 기록되도록 요청합니다. 이렇게 하면 트랜잭션이 primary 노드에서 지속되지만 반드시 standby 노드에서 지속되는 것은 아닙니다. • on (default) : 트랜잭션이 커밋되었음을 확인하기 전에 트랜잭션에 의해 수정된 데이터가 디스크에 기록되도록 합니다. • remote_write : primary 노드에서 트랜잭션을 확인하기 전에 standby 노드에서 트랜잭션 데이터를 디스크에 썼는지 확인합니다. 이렇게 하면 데이터가 standby 노드에 안전하게 복제되고 primary 노드에 장애가 발생한 경우에도 내구성이 유지됩니다. • local : primary 노드는 로컬 standby 노드가 트랜잭션 데이터를 수신했는지 확인한 후 primary 노드에서 트랜잭션을 확인합니다. • off : 트랜잭션이 커밋되었음을 확인하기 전에 데이터가 디스크에 기록될 때까지 기다리지 않습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
wal_compression | off | 지정된 압축 방법을 사용하여 WAL 압축을 활성화합니다. 지원 가능한 방법은 다음과 같습니다. • pglz • lz4 • zstd • off | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
wal_buffers | -1 | 아직 디스크에 기록되지 않은 WAL 데이터에 사용되는 공유 메모리의 양입니다. -1은 shared_buffers의 약 1/32 와 같은 크기를 의미하지만, 64kB이상 또는 하나의 WAL 세그먼트 크기 ( 일반적으로 16MB )를 초과하지 않습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
wal_writer_delay | 200ms | WAL Writer가 WAL을 flush하는 빈도를 시간 단위로 지정합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Checkpoints
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
checkpoint_timeout | 5min | 자동 WAL 체크포인트 사이의 최대 시간입니다. 30s~1d 사이에서 지정가능합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
checkpoint_completion_target | 0.9 | 체크포인트 사이의 총 시간의 일부로 체크포인트 완료 대상을 지정합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
max_wal_size | 1GB | 자동 체크포인트 중에 WAL이 커지도록 하는 최대 크기입니다. 이는 soft limit입니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
min_wal_size | 80MB | 서버가 재사용하기 전에 디스크에 보관해야 하는 WAL(Write-Ahead Log) 세그먼트 파일의 최소 크기를 지정합니다. 서버는 즉시 필요하지 않더라도 최소한 이 양의 WAL 세그먼트를 항상 디스크에 보관합니다. 이렇게 하면 데이터베이스 작업이나 기타 예기치 않은 이벤트가 갑자기 급증하는 경우에도 충돌 복구를 위해 항상 충분한 WAL을 사용할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Archiving
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
archive_mode | off | 이 파라미터를 활성화하면 archive_command 또는 archive_library를 설정하여 완료된 WAL 세그먼트가 아카이브 스토리지로 전송됩니다. off/disable 및 on/always 두 가지 모드로 지정할 수 있습니다. | 서버 시작 시에만 설정 가능 |
archive_command | ‘’ | 완료된 WAL 파일 세그먼트를 보관하기 위해 실행할 local shell command입니다. 문자열의 %p는 보관할 파일의 경로 이름으로 대체되고 %f은 파일 이름으로만 대체됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
archive_timeout | 0 | 보관되지 않은 데이터의 사용 기간을 제한하기 위해 서버가 정기적으로 새 WAL 세그먼트 파일로 전환되도록 할 수 있습니다. 이 파라미터가 0보다 크면, 서버는 마지막 세그먼트 파일 전환 이후 이 시간이 경과하고 단일 체크포인트를 포함한 데이터베이스 활동이 있을 때마다 새 세그먼트 파일로 전환됩니다(데이터베이스 활동이 없는 경우 체크포인트는 건너뜁니다). | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Archive Recovery
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
restore_command | ‘’ | 아카이브된 세그먼트를 검색하기 위해 실행할 local shell command 입니다. 문자열의 %f는 보관에서 검색할 파일 이름으로 대체되고 %p는 서버의 복사 대상 경로 이름으로 대체됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
archive_cleanup_command | ‘’ | standby 서버에서 더 이상 필요하지 않은 오래된 아카이브된 WAL 파일을 정리하는 메커니즘을 제공해줍니다. %r은(는) 유효한 마지막 restartpoint가 포함된 파일 이름으로 대체됩니다. 이 파일은 복원을 다시 시작할 수 있도록 유지해야 하는 가장 오래된 파일이므로 %r 이전의 모든 파일을 안전하게 제거할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Recovery Target
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
recovery_target | ‘’ | 이 파라미터는 복구 작업이 일관된 상태에 도달하는 즉시, 즉 가능한 빠르게 종료되도록 지정합니다. ‘immediate’ 만 유일하게 허용됩니다.온라인 백업에서 복원하는 경우 백업 수행이 종료된 지점을 포함하여 복원을 수행함을 의미합니다. | 서버 시작 시에만 설정 가능 |
recovery_target_name | ‘’ | 이 파라미터는 복구가 진행될 명명된 복원 지점(pg_create_restore_point())을 지정합니다. | 서버 시작 시에만 설정 가능 |
recovery_target_time | ‘’ | 이 파라미터는 복구를 진행할 타임스탬프를 지정합니다. 정확한 중지점은 recovery_target_inclusive의 영향도 받습니다. | 서버 시작 시에만 설정 가능 |
recovery_target_xid | ‘’ | 이 파라미터는 복구가 진행될 트랜잭션 ID를 지정합니다. | 서버 시작 시에만 설정 가능 |
recovery_target_lsn | ‘’ | 이 파라미터는 복구를 진행할 WAL의 위치의 LSN을 지정합니다. 정확한 중지점은 recovery_target_inclusive의 영향도 받습니다. | 서버 시작 시에만 설정 가능 |
recovery_target_inclusive | on | 지정한 복구 대상 직후(on) 또는 복구 대상 직전(off)에 중지할지 여부를 지정합니다. recovery_target_lsn, recovery_target_time 또는 recovery_target_xid가 지정된 경우에 적용됩니다. | 서버 시작 시에만 설정 가능 |
recovery_target_timeline | ‘latest’ | 특정 timeline로 복구하도록 지정합니다. | 서버 시작 시에만 설정 가능 |
recovery_target_action | ‘pause’ | 복구 대상에 도달한 후 서버가 수행해야 할 작업을 지정합니다. 기본값은 ‘pause’ 이며, 이는 복구가 일시 중지됨을 의미합니다. ‘promote’ 는 복구 프로세스가 완료되고 서버가 연결 수락을 시작함을 의미합니다. 마지막으로 ‘shutdown’ 은 복구 대상에 도달한 후 서버를 중지합니다. | 서버 시작 시에만 설정 가능 |
REPLICATION
Sending Servers
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
max_wal_senders | 10 | standby 서버 또는 스트리밍 기본 백업 클라이언트의 최대 동시 연결 수(즉, 동시에 실행되는 WAL 보낸 사람 프로세스의 최대 수)를 지정합니다. 값 0은 복제가 사용 불가능함을 의미합니다. 또한 wal_level을 replica 이상으로 설정하여 대기 서버로부터의 연결을 허용해야 합니다. | 서버 시작 시에만 설정 가능 |
max_replication_slots | 10 | 서버가 지원할 수 있는 최대 복제 슬롯 수를 지정합니다. 현재 존재하는 복제 슬롯 수보다 낮은 값으로 설정하면 서버가 시작되지 않습니다. 또한 복제 슬롯을 사용하려면 wal_level을 replica 이상으로 설정해야 합니다. | 서버 시작 시에만 설정 가능 |
wal_keep_size | 0 | 복제를 위해 대기 서버로 보내야 하는 미리 쓰기 로그(WAL) 데이터를 위해 기본 서버가 예약해야 하는 디스크 공간을 결정하는 파라미터입니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Primary Server
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
synchronous_standby_names | ‘’ | 동기식 복제를 지원할 수 있는 대기 서버 목록을 지정합니다. | 서버 시작 시에만 설정 가능 |
Standby Servers
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
primary_conninfo | ‘’ | 대기 서버가 송신 서버와 연결하는 데 사용할 연결 문자열을 지정합니다. | 서버 시작 시에만 설정 가능 |
primary_slot_name | ‘’ | 스트리밍 복제를 통해 전송 서버에 연결할 때 사용할 기존 복제 슬롯을 선택적으로 지정합니다. | 서버 시작 시에만 설정 가능 |
hot_standby | on | 복구 중에 쿼리를 연결하고 실행할 수 있는지 여부를 지정합니다. 아카이브 복구 모드 또는 standby 모드에서만 적용됩니다. | 서버 시작 시에만 설정 가능 |
hot_standby_feedback | off | hot_standby모드의 standby 서버가 현재 상태에 대한 피드백을 primary 서버에 보낼 수 있도록 하는 파라미터입니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
Subscribers
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
max_logical_replication_workers | 4 | 논리적 복제 작업자의 최대 수를 지정합니다. 논리적 복제 작업자는 max_worker_processes에서 정의한 풀에서 가져옵니다. | 서버 시작 시에만 설정 가능 |
REPORTING AND LOGGING
Where to Log
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
log_destination | ‘stderr’ | stderr , csvlog 및 syslog를 포함하여 서버 메시지를 기록하는 여러 방법을 지원합니다 . | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
logging_collector | on | stderr 로 전송된 로그 메시지를 캡처하고 이를 로그 파일로 리디렉션하는 백그라운드 프로세스인 logging_collector를 활성화합니다. 일부 메세지는 syslog 출력에 표시되지 않을 수 있으므로 이 접근 방식은 syslog에 로깅하는 것보다 유용합니다. | 서버 시작 시에만 설정 가능 |
log_directory | ‘log’ | logging_collector가 활성화 되면 이 파라미터는 로그 파일이 생성될 디렉토리를 결정합니다. 절대 경로 또는 클러스터 데이터 디렉터리에 대한 상대 경로로 지정할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_filename | ‘postgresql-%a.log’ | logging_collector가 활성화 되면 이 파라미터는 생성된 로그 파일의 파일 이름을 설정합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_rotation_age | 1d | logging_collector가 활성화 되면 이 파라미터는 개별 로그 파일을 사용할 최대 시간을 결정한 후 새 로그 파일이 생성됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_truncate_on_rotation | 0 | logging_collector가 활성화 되면 이 파라미터는 동일한 이름의 기존 로그 파일에 추가하는 대신 잘라내기(덮어쓰기) 하도록 합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
syslog_facility | ‘LOCAL0’ | syslog에 대한 로깅이 활성화된 경우 이 파라미터는 사용할 ‘facility’를 지정합니다. 다음중에 값을 지정할 수 있습니다. (LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7) | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
syslog_split_messages | on | syslog 에 대한 로깅이 활성화된 경우 이 파라미터는 메시지가 syslog에 전달되는 방식을 결정합니다. 켜져 있으면(default) 메시지가 줄별로 분할되고 긴 줄은 기존 syslog 구현의 일반적인 크기 제한인 1024바이트에 맞도록 분할됩니다. 꺼져 있으면 PostgreSQL 서버 로그 메시지가 있는 그대로 syslog 서비스에 전달되며 잠재적으로 부피가 큰 메시지를 처리하는 것은 syslog 서비스에 달려 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
event_source | ‘PostgreSQL’ | 이벤트 로그 에 로깅이 활성화되면 이 파라미터는 로그에서 PostgreSQL 메시지를 식별하는 데 사용되는 프로그램 이름을 결정합니다 . | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
When to Log
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
log_min_messages | warning | 서버 로그에 기록되는 메시지 레벨을 제어합니다. 유효한 값은 DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTENT, WARNING, ERROR, LOG, FATAL 및 PANIC입니다. 각 레벨에는 해당 레벨을 따르는 모든 레벨이 포함됩니다. 레벨이 낮아질수록 로그로 전송되는 메시지 수가 줄어듭니다. 슈퍼 사용자만 이 설정을 변경할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_min_error_statement | error | 오류 상태를 발생시키는 SQL 문이 서버 로그에 기록되도록 제어합니다. 현재 SQL 문은 지정된 심각도 이상의 메시지에 대한 로그 항목에 포함됩니다. 유효한 값은 DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTENT, WARNING, ERROR, LOG, FATAL 및 PANIC입니다. 기본값은 ERROR이며, 오류, 로그 메시지, 치명적인 오류 또는 패닉을 일으키는 문이 기록됩니다. 실패 문의 로깅을 효과적으로 해제하려면 이 매개 변수를 PANIC으로 설정하십시오. 슈퍼 사용자만 이 설정을 변경할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_min_duration_statement | -1 | 명령문이 지정된 시간 이상 실행된 경우 완료된 각 명령문의 시간이 기록됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
What to Log
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
debug_print_parse debug_print_rewritten debug_print_plan | off | 다양한 디버깅 출력을 내보낼 수 있습니다. 설정되면 결과 구문 분석 트리, 쿼리 재작성기 출력 또는 실행된 각 쿼리에 대한 실행 계획을 인쇄합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
debug_pretty_print | on | debug_print_parse, debug_print_rewrited 또는 debug_print_plan에서 생성된 메시지가 들여씁니다. 이렇게 하면 꺼졌을 때 사용되는 “compact” 형식보다 읽기 쉽지만 출력이 훨씬 길어집니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_checkpoints | off | 체크포인트 및 재시작 지점이 서버 로그에 기록됩니다. 기록된 버퍼 수와 버퍼를 작성하는 데 소요된 시간을 포함하여 일부 통계가 로그 메시지에 포함됩니다 | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_connections | off | 서버에 대한 각 연결을 기록하고 클라이언트 인증(필요한 경우)과 권한 부여를 모두 성공적으로 완료합니다. | 수퍼유저만 세션 시작 시 설정 |
log_disconnections | off | 세션 종료를 기록합니다. | 수퍼유저만 세션 시작 시 설정 |
log_duration | off | 완료된 모든 명령문의 기간을 기록합니다. | 수퍼유저만 세션 시작 시 설정 |
log_error_verbosity | default | 기록되는 각 메시지에 대해 서버 로그에 기록되는 세부 정보의 양을 제어합니다. 지정 가능한 값은 다음과 같으며 각각 표시된 메시지에 더 많은 필드를 추가합니다. • TERSE : DETAIL, HINT, QUERY 및 CONTEXT 오류 정보의 로깅을 제외합니다. • DEFAULT • VERBOSE : 출력에는 SQLSTATE 오류 코드와 오류를 생성한 소스 코드 파일 이름, 함수 이름 및 라인 번호가 포함됩니다. | 수퍼유저만 세션 시작 시 설정 |
log_hostname | off | 기본적으로 연결 로그 메시지에는 연결 호스트의 IP 주소만 표시됩니다. 이 파라미터를 설정하면 호스트 이름도 기록됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_line_prefix | ‘%m [%p] ‘ | 각 로그의 시작하는 부분에 로그 메세지를 출력하는 string을 지정합니다. %문자로 해당 string을 지정할 수 있으며 인식할 수 없는 %문자일 경우에는 무시됩니다.https://www.notion.so/d08011d772524e9ba524ee5cffcca4a3?pvs=21 | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
log_lock_waits | off | 세션이 lock를 얻기 위해 deadlock_message보다 오래 기다릴 때 로그 메시지를 생성할지 여부를 제어합니다. | 수퍼유저만 세션 시작 시 설정 |
log_statement | off | 기록할 SQL 문을 제어합니다. 지정 가능한 값은 다음과 같습니다. • none(꺼짐) • ddl : CREATE, ALTER 및 DROP 문과 같은 모든 데이터 정의 문을 기록합니다. • mod : 모든 ddl 문과 INSERT, UPDATE, DELETE, TRUNCATE 및 COPY FROM과 같은 데이터 수정 문을 기록합니다. 포함된 명령이 적절한 유형인 경우에는 PREPARE, EXECUTE 및 EXPLE AALY 문도 기록됩니다. all(모든 문) | 수퍼유저만 세션 시작 시 설정 |
log_replication_commands | ‘none’ | 각 복제 명령이 서버 로그에 기록되도록 합니다. | 수퍼유저만 세션 시작 시 설정 |
log_temp_files | -1 | 임시 파일 이름 및 크기의 로깅을 제어합니다. 정렬, 해시 및 임시 쿼리 결과를 위해 임시 파일을 만들 수 있습니다. 이 설정으로 활성화하면 각 임시 파일이 삭제될 때 로그 항목이 생성됩니다. | 수퍼유저만 세션 시작 시 설정 |
log_timezone | ‘Asia/Seoul’ | 서버 로그에 기록된 타임스탬프에 사용되는 시간대를 설정합니다. 이 값은 클러스터 전체에 적용되므로 모든 세션에 일관되게 타임스탬프가 적용됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
※ escape sequences
escape 문자 | 설명 | Session Process Only |
---|---|---|
%a | 애플리케이션 | Yes |
%u | 사용자 이름 | Yes |
%d | 데이터베이스 이름 | Yes |
%r | 원격 host name 또는 IP 주소, 원격 포트 | Yes |
%h | 원격 host name 또는 IP 주소 | Yes |
%p | Process ID | NO |
%t | ms(밀리초)가 없는 timestamp | NO |
%m | ms(밀리초)가 포함된 timestamp | NO |
%n | ms(밀리초)가 있는 timestamp(Unix epoch) | NO |
%i | 명령 태그: 세션의 현재 명령 유형 | YES |
%e | SQLSTATE error code | NO |
%c | 세션 ID | NO |
%l | 1부터 시작하는 각 세션 또는 프로세스의 로그 라인 번호 | NO |
%s | 프로세스 시작 timestamp | NO |
%v | 가상 트랜잭션 ID(backendID/localXID) | NO |
%x | 트랜잭션 ID(할당되지 않은 경우 0) | NO |
%q | 아무 문자도 출려되지 않지만 세션 프로세스일 경우에는 무시되고 세션 프로세스가 아닌 경우에는 이 %q문자에서 출력을 멈춥니다. | NO |
%% | %문자 출력 | NO |
AUTOVACUUM
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
autovacuum | on | 서버가 autovacuum 인스턴스 데몬을 실행해야 하는지 여부를 제어합니다. 이 기능은 기본적으로 켜져 있지만 autovacuum 가 작동하려면 track_timeout도 활성화해야 합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
autovacuum_max_workers | 3 | 한 번에 실행할 수 있는 autovacuum 프로세스(autovacuum 실행 프로그램 제외)의 최대 수를 지정합니다. | 서버 시작 시에만 설정 가능 |
autovacuum_naptime | 1min | 지정된 데이터베이스에서 autovacuum 간의 최소 지연을 지정합니다. 각 라운드에서 데몬은 데이터베이스를 검사하고 해당 데이터베이스의 테이블에 필요에 따라 VACUUM 및 ANALYZE 명령을 실행합니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
CONFIG FILE INCLUDES
파라미터 명 | 기본 값 | 설명 | 설정 조건 |
---|---|---|---|
include_dir | ‘…’ | 기본 config 파일에 포함되어야 하는 추가 구성 파일이 포함된 디렉토리를 지정할 수 있습니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
include_if_exists | ‘…’ | 추가 구성 파일이 있는 경우 기본 구성 파일에 포함할 수 있습니다. 이 옵션에 대한 인수로 하나 이상의 파일 경로를 지정할 수 있으며 지정된 파일이 있으면 기본 구성 파일에 포함됩니다. | ALTER SYSTEM 커맨드 또는 config 파일 reload로 설정 |
지금까지 ‘PostgreSQL Parameter’에 관해 알아보았습니다
‘PostgreSQL ROLE’을 바로 이어서 확인해보세요!