Avatar
임호현
좋아요
댓글
[FAQ/PG] database 혹은 table 단위로 백업을 하려면 어떻게 해야 하나요?

Question.

database 혹은 table 단위로 백업을 하려면 어떻게 해야 하나요?

 

Answer.

pg_dump 명령어를 사용해서 백업을 할 수 있습니다.
pg_dump 뒤에 백업하고 싶은 database 이름을 입력하면 됩니다.

pg_dump [connection-option...] [option...] [db-name]


백업 내용은 화면으로 출력이 되기 때문에, 리디렉션을 사용해서 파일로 저장해야 합니다.

pg_dump [db-name] > backup.dump


혹은 -f 옵션을 사용해도 됩니다.

pg_dump -f backup.dump [db-name]


특정 table만 백업하고 싶다면 -t 옵션을 사용하면 됩니다.

pg_dump -f backup.dump -t [table-name] [db-name]


반대로 특정 table만 제외하고 싶다면 -T 옵션을 사용하면 됩니다.

pg_dump -f backup.dump -T [table-name] [db-name]


특정 포멧으로 백업하고 싶다면 -F 옵션을 사용하면 됩니다.
텍스트 형태

pg_dump -f backup.dump -Fp -T [table-name] [db-name]


tar 형태

pg_dump -f backup.dump -Ft -T [table-name] [db-name]


사용자 지정

pg_dump -f backup.dump -Fc -T [table-name] [db-name]


텍스트 형태는 psql을 사용해서 복원하시면 됩니다.
tar 형태, 사용자 지정은 pg_restore를 사용해서 복원하시면 됩니다.


더 자세한 내용은 https://www.postgresql.org/docs/current/app-pgdump.html 를 참고해 주시기 바랍니다.