본문 바로가기

DB/PostgreSQL

[ Postgresql ] psql - dump한 파일 복원하기

반응형

PostgreSQL에서 pg_dump로 생성된 테이블 데이터를 복원하는 방법은 데이터 덤프의 형식과 옵션에 따라 달라질 수 있습니다. 일반적으로 아래 단계를 따릅니다:


1. 덤프 파일의 유형 확인

pg_dump로 생성된 덤프 파일은 다음과 같은 형식일 수 있습니다:

  • SQL 스크립트 파일 (.sql): SQL 명령어로 데이터와 스키마가 포함된 파일.
  • Custom 형식 파일 (.dump): 압축된 형식.
  • 디렉터리 형식 (-Fd 옵션 사용): 여러 파일로 구성된 디렉터리.
  • TAR 아카이브 형식 (-Ft 옵션 사용).

2. SQL 스크립트 파일 복원

SQL 스크립트 파일은 텍스트 기반이므로, psql 명령어를 사용해 복원할 수 있습니다.

psql -U <사용자명> -d <데이터베이스명> -f <덤프파일.sql>

예:

psql -U postgres -d mydb -f table_dump.sql

3. Custom 또는 TAR 파일 복원

이 형식의 덤프 파일은 pg_restore를 사용합니다.

기본 복원 명령:

pg_restore -U <사용자명> -d <데이터베이스명> <덤프파일>

예:

pg_restore -U postgres -d mydb table_dump.dump

옵션 설명:

  • -d: 복원할 데이터베이스 이름.
  • --schema-only: 스키마만 복원.
  • --data-only: 데이터만 복원.
  • --table=<테이블명>: 특정 테이블만 복원.

4. 디렉터리 형식 복원

디렉터리 형식은 pg_restore와 비슷하게 복원합니다.

pg_restore -U <사용자명> -d <데이터베이스명> -Fd <디렉터리 경로>

예:

pg_restore -U postgres -d mydb -Fd ./table_backup

5. 복원 전 준비 작업

  • 데이터베이스 생성: 덤프 파일 복원 전에 데이터베이스를 생성해야 할 수도 있습니다.
createdb -U <사용자명> <데이터베이스명>
  • 권한 확인: 복원하려는 사용자가 데이터베이스에 적절한 권한을 가지고 있는지 확인하세요.

6. 문제 해결

  • 오류 발생 시: 오류 로그를 확인하고, 필요한 경우 옵션을 조정하거나 SQL 스크립트를 편집합니다.
  • 테이블 중복 오류: 복원 전에 해당 테이블을 삭제하거나 pg_restore--clean 옵션을 사용해 기존 데이터를 제거합니다.
pg_restore -U <사용자명> -d <데이터베이스명> --clean <덤프파일>
반응형