-U
: username-h
: host (생략 시 => localhost
)-d
: database name-n
: 덤프 받을 테이블이 포함된 스키마-p
: 포트번호 (생략 시 => 5432
)-t
: 덤프 받을 테이블 이름-F
: 덤프를 내는 방식 지정-F p
: sql 파일로 덤프 (default)-F c
: 압축한 아카이브 파일로 덤프-F d
: 디렉토리에 덤프 파일 생성-f
: 덤프 결과 파일명옵션 파라미터 중에서 -F
에 따라 다른 방식의 덤프를 지원합니다.
이 중에서 SQL 파일로 덤프
, 압축한 아카이브 파일로 덤프
를 만드는 방법만 보도록 하겠습니다.
### 형식:
# pg_dump -U [사용자 명] -h [호스트] -d [데이터베이스] -n [스키마] -p [포트번호] \
# -t [(스키마).테이블 명]
# -f [덤프 결과 파일명].sql;
### 예시:
pg_dump -U postgres -h localhost -d postgres -n public -p 5432 \
-t public.tl_scco_ctprvn \
-f tl_scco_ctprvn.sql;
방법 1. SQL 덤프
와 거의 유사하지만 다른 점이 몇가지 있습니다.
-F c
옵션 사용-f
에 *.sql
이 아닌 다른 확장자 사용 (헷갈림 방지용)### 형식:
# pg_dump -U [사용자 명] -h [호스트] -d [데이터베이스] -n [스키마] -p [포트번호] -F c \
# -t [(스키마).테이블 명]
# -f [덤프 결과 파일명].dump;
### 예시:
pg_dump -U postgres -h localhost -d postgres -n public -p 5432 \
-F c \
-t public.tl_scco_ctprvn_202412 \
-f tl_scco_202412_bck.dump;
개인적으로는 압축 아카이브 방식이 더 좋은 거 같습니다.
SQL 로 덤프 낼 때보다 파일 크기가 확연히 작아집니다.
-t
옵션을 연달아서 작성하면 됩니다.
## SQL 덤프
pg_dump -U postgres -h localhost -d postgres -n public -p 5432 \
-t public.tl_scco_ctprvn \
-t public.tl_scco_sig \
-t public.tl_scco_emd \
-t public.tl_scco_li \
-f total_bck.sql;
## 압축 아카이브 덤프 방식도 똑같이 동작합니다!
-t
옵션을 전부 빼고, -n
옵션만 정확히 명시하면 됩니다.
pg_dump -U postgres -h localhost -d dump -p 5432 -n public -F c -f dump_public.dump
덤프 결과물이 SQL
인지, 압축 아카이브
인지에 따라
복원하는 명령어를 달리 해야합니다.
psql -f
pg_restore
가볍게 아래 예시를 보면 대충 어떻게 하는지 감이 오실 겁니다.
# 옵션 파라미터는 pg_dump 와 유사합니다.
psql -U postgres -d postgres -h localhost -p 5432 -f total_dump.sql
# 옵션 파라미터는 pg_dump 와 유사합니다.
pg_restore -U postgres -d postgres -h localhost -p 5432 \
test_tl_scco_202412.dump
https://www.postgresql.org/docs/current/backup.html
https://eehoeskrap.tistory.com/555
https://stackoverflow.com/questions/30171063/how-to-generate-a-postgresql-dump-from-a-docker-container