목차

, , , , ,

pg_ctl

PostgreSQL server instance를 초기화, 시작, 중지, 재시작, 상태 확인할 때 쓰는 control utility다.

Summary

Usage

pg_ctl initdb -D /var/lib/postgresql/17/main
pg_ctl start -D "$PGDATA" -l /var/log/postgresql/server.log
pg_ctl stop -D "$PGDATA" -m fast
pg_ctl restart -D "$PGDATA" -m fast
pg_ctl reload -D "$PGDATA"
pg_ctl status -D "$PGDATA"
pg_ctl promote -D "$PGDATA"
pg_ctl kill TERM 12345

Options

Examples

# 새 데이터 디렉터리 초기화
pg_ctl initdb -D /srv/postgres/17/main
 
# 로그 파일을 남기며 서버 시작
pg_ctl start -D /srv/postgres/17/main -l /srv/postgres/17/main/server.log
 
# 포트와 listen_addresses를 임시 오버라이드해서 시작
pg_ctl start -D "$PGDATA" -o "-p 55432 -c listen_addresses=127.0.0.1"
 
# 설정 파일 변경 후 재기동 없이 다시 읽기
pg_ctl reload -D "$PGDATA"
 
# 정상 종료 대기
pg_ctl stop -D "$PGDATA" -m smart
 
# 일반적인 빠른 종료
pg_ctl stop -D "$PGDATA" -m fast
 
# standby를 primary로 승격
pg_ctl promote -D "$PGDATA" -W

Troubleshooting

Compatibility

systemd, docker entrypoint, Kubernetes operator처럼 상위 orchestrator가 PostgreSQL 프로세스를 관리하는 환경에서는 pg_ctl을 직접 실행하기보다 그 관리 계층의 start/stop/restart 절차를 따르는 편이 안전하다.

Help

pg_ctl --help

See Also

History