PostgreSQL 데이터베이스를 logical backup으로 내보내는 명령이다. plain SQL, custom archive, directory, tar format을 지원하며 schema-only 또는 data-only dump에도 자주 쓴다.
-F c custom format이나 -F d directory format이 유연하다.psql로 수행한다.pg_dump [OPTION]... [DBNAME] pg_dump -d appdb -f appdb.sql pg_dump -Fc -d appdb -f appdb.dump pg_dump -Fd -j 4 -d appdb -f appdb.dir
pg_dump [<switches>…] [DBNAME]pg_dump -f FILE 출력 파일 또는 디렉터리 지정pg_dump -F p|c|d|t 출력 형식 지정pg_dump -s schema-only dumppg_dump -a data-only dumppg_dump -n SCHEMA, -t TABLE 범위 제한-f, –file 출력 파일 또는 directory 이름-F, –format p plain, c custom, d directory, t tar-j, –jobs 병렬 dump worker 수. directory format에서 자주 사용-Z, –compress 압축 레벨 지정-a, –data-only 데이터만 dump-s, –schema-only schema만 dump-c, –clean 복원 전에 object drop SQL 포함-C, –create database 생성 SQL 포함-n, –schema 특정 schema만 dump-N, –exclude-schema 특정 schema 제외-t, –table 특정 table만 dump-T, –exclude-table 특정 table 제외-O, –no-owner ownership 복원 정보 생략-x, –no-privileges GRANT/REVOKE 정보 생략-h, –host, -p, -U 접속 정보 지정 (미지정시 소켓연결)# 사람이 읽을 수 있는 plain SQL dump pg_dump -d appdb -f ./appdb.sql # pg_restore로 다루기 좋은 custom archive pg_dump -Fc -d appdb -f ./appdb.dump # 병렬 dump용 directory format pg_dump -Fd -j 4 -d appdb -f ./appdb.dir # schema만 백업 pg_dump -s -d appdb -f ./appdb-schema.sql # data만 백업 pg_dump -a -d appdb -f ./appdb-data.sql # 특정 schema만 백업 pg_dump -n public -d appdb -f ./public.sql # 특정 table만 백업 pg_dump -t public.users -d appdb -f ./users.sql
–lock-wait-timeout을 검토한다.-Fc 또는 -Fd가 보통 낫다.-O -x 조합을 검토한다.pg_dump는 백업 생성 도구다. plain SQL dump에 -c 또는 -C를 넣으면 복원 시 기존 object를 drop하거나 database를 다시 만들 수 있으므로 production 적용 전에 내용을 확인한다.