인성장

[PostgreSQL] 기동 정지 방법 본문

PostgreSQL/Admin

[PostgreSQL] 기동 정지 방법

인성장 2023. 11. 30. 11:25
PostgreSQL 기동 정지

 

 

DB Start 방법

$PG_HOME/bin/pg_ctl start -D $PGDATA -l logfile_name

* $PG_HOME = PostgreSQL 엔진 설치 경로

* $PGDATA = PostgreSQL DB Data Directory

* -l 옵션은 로그파일 지정 (생략 가능)

 

예시

$ /postgres/app/postgres/pgsql15/bin/pg_ctl start -D /postgres/app/postgres/pgsql15/data

 

 

DB Stop 방법

$PG_HOME/bin/pg_ctl stop -D $PGDATA -l logfile_name -m [Shutdown Mode]

* $PG_HOME = PostgreSQL 엔진 설치 경로

* $PGDATA = PostgreSQL DB Data Directory

* -l 옵션 = 로그파일 지정 (생략 가능)

* -m 옵션 = Shutdown Mode 지정

Shutdown Mode 3가지 Options

 

Smart

이 옵션은 pg_ctl stop 명령 전에 접속되어 있던 사용자가 있을 경우 강제로 종료시키지 않고 해당 사용자들이 모두 스스로 접속을 종료할 때까지 기다렸다가 종료하는 옵션입니다. 만약 사용자들이 스스로 접속을 종료하지 않는다면 PostgreSQL도 종료되지 않습니다.

* Oracleshutdown normal 방식과 비슷합니다.

 

Fast (Default)

-m 옵션을 부여하지않고 pg_ctl stop 명령을 사용하면 이 옵션이 기본값으로 사용됩니다. 가장 바람직한 종료 수행방법이며, current transaction을 rollback하고, 접속중인 세션을 강제종료한 후 PostgreSQL를 종료합니다.

* Oracleshutdown immediate 방식과 비슷합니다.

 

Immediate

서버에 아무런 조치도 취하지 않고 즉시 종료하는 방법입니다. 기존 접속해있던 사용자가 수행한 작업을 저장하지도, rollback 하지도 않고 그냥 즉시 종료하게 됩니다. 이 옵션으로 종료한 DB는 다시 start 할 때 WAL로 복구 작업(WAL log replaying)을 진행합니다. 비상시에만 사용하시길 권장합니다.

* Oracleshutdown abort 방식과 비슷합니다.

 

  New Connections Connecting Sessions Current Transaction Checkpoint
Smart Reject Waiting Waiting O
Fast Reject Shutdown immedate Rollback O
Immediate Reject Shutdown immedate Ignore Ignore

 

 

예시

-- Default(Fast) DB 종료 (정상 종료)
$ /postgres/app/postgres/pgsql15/bin/pg_ctl stop -D /postgres/app/postgres/pgsql15/data

-- Immediate DB 종료 (비정상 종료)
$ /postgres/app/postgres/pgsql15/bin/pg_ctl stop -D /postgres/app/postgres/pgsql15/data -m immediate

 

 

DB Restart 방법

$PG_HOME/bin/pg_ctl restart -D $PGDATA -l logfile_name -m [Shutdown Mode]

* Stop 방법과 옵션은 동일합니다.

 

예시

$ /postgres/app/postgres/pgsql15/bin/pg_ctl restart -D /postgres/app/postgres/pgsql15/data

 

 

DB Reload 방법

$PG_HOME/bin/pg_ctl reload -D $PGDATA

또는

psql 안에서 select pg_reload_conf(); 수행

* pg_hba.conf 또는 postgresql.conf 파일 내용중 재기동이 필요없는 파라미터 변경시 적용을 위해 reload를 사용합니다.

 

예시

방법 1.
$ /postgres/app/postgres/pgsql12/bin/pg_ctl reload -D /postgres/app/postgres/pgsql12/data

방법 2.
postgres=# select pg_reload_conf();
반응형