Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

PostgreSQL 명령어

...

  • sudo su postgres

...

  • createdb <db name>
  • createdb -O <user> <db name>
    • Owner가 <user>인 <db name> 생성
  • alter user <user> with password '<password>';
    • <user>의 password를 <password>로 덮어 씀

...

psql

...

  • 사용자 생성
    • Panel

      postgres=# create user <user name>;

  • 사용자 비밀번호 설정
    • Panel

      postgres=# alter user <user name> with password <password>;

  • DB 생성
    • Panel

      postgres=# create database <db name> onwer <user name>;

  • DB 보기
    • \l

  • DB 삭제
    • Panel

      postgres=# drop database <db name>;

  • 사용자에 DB 생성 권한 부여 (unittest 시 필요)
    • ALTER ROLE <user> CREATEDB;
  • psqlDB 사용자 보기
    • \l사용자 보기\dudu (\du+) 
  • 사용자 제거
    • Panel

      postgres=# drop owned by <user name>;

      postgres=# drop user <user name>;

  • 종료
    • \q (cmd + d)


백업, 복구

...

  • 파일명에 현재 시간을 붙여 <user>의 <db name>을 <path>에 백업
    • pg_dump -h localhost -U <user>-Ft -f <path>/<db name>_`date +%Y%m%d-%T`.backup <db name>
  • password 자동 입력
    • Panel

      $ vi ~/.pgpass


      #server:port:<db name>:<user><password>

      localhost:5432:database:user:password


      $ sudo chmod 600 ~/.pgpass

  • crontab 으로 자동 백업하기

    • Panel

      $ vi /home/genonfire/backup.sh

      # !/bin/sh

      pg_dump -h localhost -U <user>-Ft -f <path>/<db name>_`date +%Y%m%d-%T`.backup <db name>


      $ crontab -e

      45 13 * * 0,3 /home/genonfire/backup.sh # 매주 일요일(0), 수요일(3) 13:45에 실행

      $ crontab -l # 등록되었는지 확인