Windows 서버에서 PostgreSQL 을 운영하는 도중 다양한 이유로 인해 Windows 서비스에서 PostgreSQL 서비스가 컨트롤(중지 및 시작) 되지 않는 경우가 발생할 수 있습니다. 이때 PostgreSQL에서 제공해 주는 pg_ctl.exe를 통해 수동으로 서비스를 중지 및 시작할 수 있습니다.
우선 pg_ctl.exe 은 PostgreSQL 이 설치된 디렉토리 중 bin 디렉토리에 위치하며, 해당 파일이 하는 역할은 크게 아래와 같습니다.
pg_ctl.exe 는 PostgreSQL 데이터베이스 제반 작업을 수행하게 됩니다. 이 작업은 데이터베이스 클러스터 초기화, 서버 시작, 중지, 재시작, 서버 상태 출력 등입니다. 물론 서버는 postgres 명령으로 직접 실행할 수 있으나, pg_ctl.exe 명령을 이용하면, 보다 쉽고, 안전하게 관리할 수 있습니다.
pg_ctl.exe에서 제공해 주는 옵션은 아래와 같이 다양합니다. 하지만 우리가 필요한 옵션은 서비스 중지 및 시작 시 참조할 옵션이며, 수동으로 서비스를 중지 및 시작하는 옵션은 아래와 같습니다.
1) 서비스 수동 중지
※ cmd창 관리자 권한 실행
#cd D:\Postgresql\pgsql\bin (bin디렉토리 이동)
#pg_ctl.exe stop -m fast-D "DB data 경로 지정"
-m, --mode 는 중지 시 참조하는 Mode. (smart, fast, immediate 중 하나)
- smart 모든 클라이언트의 연결이 끊기게 되면 중지 됨
- fast 클라이언트의 연결을 강제로 끊고 정상적으로 중지 됨
- immediate 그냥 무조건 중지함; 다시 시작할 때 복구 작업을 할 수도 있음
2) 서비스 수동 시작
※ cmd창 관리자 권한 실행
#cd D:\Postgresql\pgsql\bin (bin디렉토리 이동)
#pg_ctl.exe start -D "DB data 경로 지정"
[ pg_ctl.exe 전체 옵션 ]
D:\Postgresql\pgsql\bin>pg_ctl.exe --help
pg_ctl 프로그램은 PostgreSQL 서버를 초기화, 시작, 중지, 제어하는 도구입니다.
사용법:
pg_ctl init[db] [-D 데이터디렉터리] [-s] [-o "옵션"]
pg_ctl start [-w] [-t 초] [-D 데이터디렉터리] [-s] [-l 로그파일] [-o "옵션"]
pg_ctl stop [-W] [-t 초] [-D 데이터디렉터리] [-s] [-m 중지모드]
pg_ctl restart [-w] [-t 초] [-D 데이터디렉터리] [-s] [-m 중지모드]
[-o "옵션"]
pg_ctl reload [-D 데이터디렉터리] [-s]
pg_ctl status [-D 데이터디렉터리]
pg_ctl promote [-D 데이터디렉터리] [-s]
pg_ctl kill 시그널이름 PID
pg_ctl register [-N 서비스이름] [-U 사용자이름] [-P 암호] [-D 데이터디렉터리]
[-S 시작형태] [-w] [-t 초] [-o "옵션"]
pg_ctl unregister [-N 서비스이름]
일반 옵션들:
-D, --pgdata=데이터디렉터리 데이터베이스 자료가 저장되어있는 디렉터리
-e SOURCE 서비스가 실행 중일때 쌓을 로그를 위한 이벤트 소스
-s, --silent 일반적인 메시지는 보이지 않고, 오류만 보여줌
-t, --timeout=초 -w 옵션 사용 시 대기 시간(초)
-V, --version 버전 정보를 보여주고 마침
-w 작업이 끝날 때까지 기다림
-W 작업이 끝날 때까지 기다리지 않음
-?, --help 이 도움말을 보여주고 마침
(기본 설정은 중지 할 때는 기다리고, 시작이나 재시작할 때는 안 기다림.)
-D 옵션을 사용하지 않으면, PGDATA 환경변수값을 사용함.
start, restart 때 사용할 수 있는 옵션들:
-c, --core-files 이 플랫폼에서는 사용할 수 없음
-l, --log=로그파일 서버 로그를 이 로그파일에 기록함
-o 옵션들 PostgreSQL 서버프로그램인 postgres나 initdb
명령에서 사용할 명령행 옵션들
-p PATH-TO-POSTGRES 보통은 필요치 않음
stop, restart 때 사용 할 수 있는 옵션들:
-m, --mode=모드 모드는 "smart", "fast", "immediate" 중 하나
중지방법 설명:
smart 모든 클라이언트의 연결이 끊기게 되면 중지 됨
fast 클라이언트의 연결을 강제로 끊고 정상적으로 중지 됨
immediate 그냥 무조건 중지함; 다시 시작할 때 복구 작업을 할 수도 있음
사용할 수 있는 중지용(for kill) 시그널 이름:
ABRT HUP INT QUIT TERM USR1 USR2
서비스 등록/제거용 옵션들:
-N SERVICENAME 서비스 목록에 등록될 PostgreSQL 서비스 이름
-P PASSWORD 이 서비스를 실행할 사용자의 암호
-U USERNAME 이 서비스를 실행할 사용자 이름
-S 시작형태 서비스로 등록된 PostgreSQL 서버 시작 방법
시작형태 설명:
auto 시스템이 시작되면 자동으로 서비스가 시작됨 (초기값)
demand 수동 시작
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] Database I/O 통계 정보 모니터링 (0) | 2024.11.22 |
---|---|
[PostgreSQL] Table Size 확인 (0) | 2022.10.28 |
[PostgreSQL] DB 및 Tablespace Size 확인 (0) | 2022.10.27 |
[PostgreSQL] Vacuum 이란? (0) | 2020.12.24 |