본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] gp_dump - 백업 받기

반응형

PostgreSQL에서 데이터베이스 덤프를 받는 방법은 pg_dump 명령어를 사용하는 것입니다. 덤프는 특정 데이터베이스를 백업하거나 다른 서버로 이동할 때 유용합니다. 덤프를 받는 방법은 여러 가지가 있지만, 가장 기본적인 사용법은 다음과 같습니다.

1. 기본 덤프 명령어

   pg_dump -U [username] -d [database_name] -f [file_path]
  • -U [username]: PostgreSQL 사용자 이름을 지정합니다.
  • -d [database_name]: 덤프할 데이터베이스 이름을 지정합니다.
  • -f [file_path]: 덤프 파일을 저장할 경로와 파일 이름을 지정합니다.

예를 들어:

   pg_dump -U myuser -d mydatabase -f /path/to/backup.sql

2. 덤프 형식 선택

기본적으로 pg_dump는 SQL 형식의 덤프를 생성하지만, 다른 형식을 선택할 수도 있습니다.

  • SQL 형식 (기본값):
  pg_dump -U myuser -d mydatabase -f /path/to/backup.sql
  • 압축된 형식:
  pg_dump -U myuser -d mydatabase -F c -f /path/to/backup.dump
  • -F c 옵션은 압축된 커스텀 형식으로 덤프를 만듭니다. 이 파일은 pg_restore를 사용해 복구할 수 있습니다.

3. 전체 데이터베이스 덤프

PostgreSQL에서 모든 데이터베이스를 덤프하려면 pg_dumpall을 사용할 수 있습니다.

   pg_dumpall -U [username] -f [file_path]

예를 들어:

   pg_dumpall -U myuser -f /path/to/all_databases.sql

이 명령어는 모든 데이터베이스와 사용자 계정 등의 정보도 포함하여 백업합니다.

4. 특정 테이블만 덤프하기

특정 테이블만 덤프하려면 -t 옵션을 사용합니다.

   pg_dump -U myuser -d mydatabase -t mytable -f /path/to/table_backup.sql

5. 원격 서버에서 덤프 받기

원격 PostgreSQL 서버의 데이터베이스를 덤프하려면 -h 옵션을 사용하여 호스트를 지정합니다.

   pg_dump -h [host] -U [username] -d [database_name] -f [file_path]

예를 들어:

   pg_dump -h remote.server.com -U myuser -d mydatabase -f /path/to/backup.sql

6. 비밀번호 입력 없이 덤프 받기

PostgreSQL 비밀번호를 묻지 않고 덤프를 받고 싶다면, .pgpass 파일을 사용하거나 PGPASSWORD 환경 변수를 설정할 수 있습니다.

   export PGPASSWORD='your_password'
   pg_dump -U myuser -d mydatabase -f /path/to/backup.sql

PostgreSQL에서 특정 스키마만 덤프를 받으려면 pg_dump 명령어에 --schema 옵션을 사용합니다. 이 옵션은 특정 스키마만 포함된 덤프 파일을 생성하는 데 유용합니다.

7. 특정 스키마 덤프 명령어

   pg_dump -U [username] -d [database_name] --schema=[schema_name] -f [file_path]
  • -U [username]: PostgreSQL 사용자 이름을 지정합니다.
  • -d [database_name]: 덤프할 데이터베이스 이름을 지정합니다.
  • --schema=[schema_name]: 덤프할 특정 스키마 이름을 지정합니다.
  • -f [file_path]: 덤프 파일을 저장할 경로와 파일 이름을 지정합니다.

예시

예를 들어, mydatabase라는 데이터베이스에서 myschema라는 스키마만 덤프를 받으려면 다음과 같이 실행합니다.

   pg_dump -U myuser -d mydatabase --schema=myschema -f /path/to/myschema_backup.sql

참고 사항

  • 여러 개의 스키마를 덤프하려면 --schema 옵션을 여러 번 사용할 수 있습니다:
  pg_dump -U myuser -d mydatabase --schema=myschema1 --schema=myschema2 -f /path/to/multiple_schemas_backup.sql

이 방법을 통해 PostgreSQL 데이터베이스 덤프를 효율적으로 받을 수 있습니다.

반응형