Database

[PostgreSQL] pg_dumpall - 데이터베이스 백업/복원

비번변경 2023. 12. 29. 14:48

개요

PostgreSQL 데이터베이스 내 데이터 전체를 백업하고 복원해야 할 일이 있어 방법을 정리해 둔다. 

 

 

백업

pg_dumpall은 데이터베이스 클러스터 전체 내용을 덤프 하는 프로그램으로, 클러스터의 각 데이터베이스를 백업하고 role, tablespaces와 같은 클러스터 전체 데이터도 저장한다. 기본 사용법은 아래와 같다.

pg_dumpall > <OUTPUT_FILE>
pg_dumpall -f <OUTPUT_FILE>
pg_dumpall -U <USER> -f <OUTPUT_FILE>

# 예시
pg_dumpall -U postgres > dumpall_superset_postgres.sql

pg_dumpall은 role, tablespaces, 빈 데이터베이스를 재생성하는 명령어를 내보낸 후, 각 데이터베이스에 대한 pg_dump를 호출하는 방식으로 동작한다.

결과 파일은 SQL이 저장된 텍스트 파일이다.

 

 

복원

pg_dumpall로 생성한 파일은 psql 명령어로 복원할 수 있다. pg_dumpall로 생성한 덤프 파일을 복원할 때는 데이터베이스 superuser 권한으로 접근할 수 있어야 한다.

psql -f <.sql> -U <superuser>

기본적으로 psql 명령은 SQL 오류가 발생해도 계속 이어서 실행된다.

 

 

참고 문서

https://idchowto.com/postgresql/

https://www.postgresql.org/docs/current/backup-dump.html

 

728x90