본문 바로가기

 

pg_dump VS pg_dumpall

  pg_dump pg_dumpall
백업 범위 단일 데이터베이스 전체 데이터베이스 클러스터
백업 내용 테이블, 데이터, 객체 데이터베이스 + 사용자 계정, 권한, 설정
형식 지원 SQL, 사용자 지정(-Fc, -Fd 등) SQL 스크립트만 가능
복원 명령어 psql, pg_restore psql
주요 사용 사례 특정 데이터베이스만 백업 서버 전체를 백업

 

pg_dumpall을 쓰면 서버 전체를 백업하는 것이여서 편리하긴 하지만

데이터베이스명이 변경되는 경우 pg_dumpall을 써서 백업한 파일로 복원할 경우 오류가 발생한다.

 

그렇게 때문에 pg_dumpall보다는 데이터베이스별로 pg_dump로 백업해서 관리하는 것이 더 용이한다고 생각한다.

 

DB 백업 명령어

docker exec -i [db 서비스명] pg_dump -U [사용자 id] -d [database 명령어] > [백업 파일명].sql

# 예시
docker exec -i test-db pg_dump -U test_usr -d test_db > dump_test_20241121.sql

 

DB 복원 명령어

docker exec -i [PostgreSQL 컨테이너 이름] psql -U [사용자 이름] -d [데이터베이스 이름] < [복원 파일 경로]

# 예시
docker exec -i test-db psql -U test_usr -d test_db < dump_test_20241121.sql

개발의 각궁

Spring | Spring MVC | Spring Boot | Spring Security | Mysql | Oracle | PostgreSQL | Mybatis | JPA | Angular.js | Vue.js | Nuxt.js | React.js | TypeScript | JSP | Frontend | Backend