기주

[DB] postgresql 데이터 백업/복원 (pg_dumpall VS pg_dump) 본문

DBMS/PostgreSQL

[DB] postgresql 데이터 백업/복원 (pg_dumpall VS pg_dump)

기주그지마 2024. 12. 10. 16:29

pg_dumpall VS pg_dump 차이

 

pg_dumpall

- 모든 데이터베이스와 글로벌객체(사용자, 권한)를 백업

- 일반적으로 백업파일이 SQL스크립트파일형식이다 ( .sql )

- 백업시 파일의 확장자는 .dump나 .sql이나 상관없지만 직관성을 위해 .sql로 하는게 좋다

 

복원

텍스트 형식의 SQL 스크립트 파일이므로 psql을 사용하여 복원해야한다

- psql 은 SQL 명령어를 직접 실행할 수 있기 때문이다.

 

백업

pg_dumpall -U postgres -f [저장할 파일명].sql
옵션
-f: 백업을 파일로 저장
--schema-only: DDL만 백업

 

 

복원

psql -U postgres -f [백업 파일명]
-f 옵션: 지정된 파일에서 SQL 명령어를 읽고 실행합니다.

 

 

 

pg_dump

- postgres  내부의  "개별 database"만을 백업

- 여러 형식으로 백업을 생성할 수 있다

(사용자형식 : -F c / 텍스트형식 : -F p / 디렉토리 형식 -F d)

복원

- 사용자 형식(-F c)와 디렉토리 형식(-F d)으로 백업된 파일은 pg_restore를 사용해 복원한다.

- pg_restore는 바이너리 형식을 해석해서 복원할 수 있기 때문이다.

 

 

백업

pg_dump -U postgres -F c -f [저장할 파일명].dump [데이터베이스명]
-U [사용자명]: db사용자
-F c: 사용자 지정형식
-f [파일명]: 파일에 저장

 

복원

pg_restore -U postgres -d [db명] [백업파일명]
-d [db명] : 복원할 db명