Skip to content

postgres - Initiate, Startup, Shutdown, Reload & Restart#

pg_ctl을 이용한 Initiate, Startup, Shutdown, Reload & Restart#

pg_ctl 옵션

  • pg_ctl init [db] [-s] [-D datadir] [-o initdb-options]
  • pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c]
  • pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m s [mart] | f [ast] | i [mmediate]
  • pg_ctl restart [-w] [-t seconds] [-s] [-D datadir] [-c] [-m s [mart] | f [ast] | i [mmediate]] [-o options]
  • pg_ctl reload [-s] [-D datadir]
  • pg_ctl status [-D datadir]
  • pg_ctl promote [-s] [-D datadir]
  • pg_ctl kill signal_name process_id
  • pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-S a [uto] | d [emand]] [-w] [-t seconds] [-s] [- o options]
  • pg_ctl unregister [-N servicename]
    [root@**** ~]# pg_ctl -D /home/postgres/pgsql/data -l logfile start
    [root@**** ~]# pg_ctl -l logfile -m fast stop
    [root@**** ~]# pg_ctl -D /home/postgres/pgsql/data -l logfile restart
    [root@**** ~]# pg_ctl -w restart
    [root@**** ~]# pg_ctl -D /home/postgres/pgsql/data -l logfile reload
    [root@**** ~]# pg_ctl status
    
  • -m (smart | fast | immediate)
    • shutdown mode 지정.
    • smart : default, 새로운 접속 거부, client의 모든 접속 끊길 때 까지 대기, 온라인 백업시 종료할 때까지 대기, 스트리밍 복제는 종료
    • fast : 모든 사용자 트랜잭션 rollback, 바로 끊김, 온라인 백업 종료
    • immediate : fast와 유사. 'clean shutdown'이 아님(checkpoint를 처리하지 않음), 재시작시 복구 작업 수행
  • -D datadir
    • 데이터베이스 파일의 파일 시스템 위치를 지정
    • 생략할 경우 $PGDATA 환경 변수가 적용됨
  • -l filename
    • 서버 로그 출력을 filename에 추가
    • 파일이 존재하지 않으면 생성
  • -w
    • 시작 혹은 정지 처리가 완료될 때까지 기다림
    • 중지를 대기하고 있는 경우 pg_ctl은 서버가 pid 파일 삭제할 때까지 대기
    • pg_ctl은 기동/정지가 성공했는지 여부에 따라 올바른 종료 코드 반환
  • -W
    • 부팅 과정 혹은 정지 처리가 완료될 때가지 기다리지 않음
    • start 및 restart 모드의 기본
  • reload
    • restart의 경우 stop/start로 인해 접속이 안되거나 끊길 수 있음
    • 설정파일(postgresql.conf, pg_hba.conf 등)만 재적용하는 것이 reload.
    • postmast에 행업(hang up) 시그널을 보내는 것과 동일
      postgres$ kill -SIGUP 'cat /home/postgres/pgsql/data/postmaster.pid | head -1'
      
    • psql에서 쿼리로 설정 파일 다시 읽어오는 방법도 있음
      postgres=# select pg_realod_conf();
      
    • 모든 설정 내용이 행업 시그널로 처리되는 것은 아니고 아래 쿼리의 대상만 가능
      postgres=# select name, setting, unit, context, extra_desc from pg_settings where context='sighup';
      
  • promote
    • 지정한 데이터디렉토리에서 실행중인 대기 서버에 복구를 완료 읽기 및 쓰기 작업을 시작하도록 명령
  • kill, register, unregister
    • Microsoft Windows 모드에서 사용 가능


Last update: 2020년 5월 11일 10:34:16