2017년 9월 20일 수요일

PostgreSQL 실행

DB 를 실행시키는 방법에는 2가지가 있다.
forground, background

명령어는 아래와 같다.

Start foreground running
% postgres -D $PG/data

Start background running
% pg_ctl -D $PG/data -l logfile start

DB 를 start 하고 나면 ps 명령어를 통해,
postgres 프로세스가 실행되어 있는걸 확인할 수 있다.

DB 를 중지시키는 명령어는 아래와 같다.

Stop
% pg_ctl -D $PG/data stop

그런데 여기서 잠깐.
DB 를 foreground 로 실행시키는 경우가 있나? 라고 의문이 들 수 있다.
foreground 를 실행시킨 session 이 끊기면 DB 도 정지할텐데.
사실 DB 의 역할은 background 에서 안 보이는 곳에서 활동하면서
client 의 요청을 처리해주는게 주된 임무라고 생각하기 때문이다.

맞는 말이다.
평소에는 사용할 일이 없을 것......이다.
(아마도? 다른 뭐 필요한 경우가 있을 수도 있겠지.....)

그럼 어떨 때 사용하냐?
바로 debugging 할 때, 사용한다. (지극히 내 개인적인 경우)

물론 이미 실행되어 있는 프로세스에 gdb 를 attach 해서 사용할 수는 있겠지만.
실행 단계에서부터 디버깅이 필요하거나,
그냥 습관적으로 gdb 로 시작을 하거나.
이럴 때 사용하면 된다.

※ postgres 를 사용해서 foreground 로 실행시키면, 화면에 로그가 출력되는데,
pg_ctl 의 -l 옵션이 그 내용을 파일로 저장해 주는 역할을 한다.
화면에 출력되는 내용이 logfile 내용과 같은걸 확인할 수 있다.



출처
https://www.postgresql.org/docs/current/static/server-start.html
https://tedwon.atlassian.net/wiki/spaces/SE/pages/1212988/PostgreSQL

댓글 없음:

댓글 쓰기

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...