PostgreSQL 데이터베이스 백업 및 복원 방법(5가지 팁)

PostgreSQL 데이터베이스 백업 및 복원 방법(5가지 팁)

2022-10-18 last update

6 minutes reading backup psql pg_dump database PostgreSQL restore
PostgreSQL 데이터베이스 서버(Postgres라고도 함)는 고급 데이터베이스 관리 시스템입니다. Postgres 서버는 데이터베이스 백업 및 복원을 위한 psql , pg_dumppg_dumpall 명령줄 유틸리티를 제공합니다. 이 기사에서는 pg_dump 명령을 사용하여 데이터베이스를 백업하는 다양한 방법을 설명합니다. 또한 명령줄을 통해 postgres 데이터베이스 백업을 복원하는 방법도 배우게 됩니다.

Postgres에서 데이터베이스 백업 및 복원

다음은 이 문서에 제공된 모든 쿼리로 원격 서버 또는 인증된 서버를 연결하는 데 사용할 수 있는 몇 가지 연결 옵션입니다.
  • -d, --dbname=DBNAME 데이터베이스 이름
  • -h, --host=HOSTNAME 데이터베이스 서버 호스트 이름 또는 ip
  • -p, --port=PORT 데이터베이스 서버 포트 번호(기본값: 5432)
  • -U, --username=NAME 지정된 데이터베이스 사용자로 연결
  • -W, --password 강제 비밀번호 프롬프트
  • --role=ROLENAME 덤프 전에 SET ROLE 수행
  • 1. PostgreSQL 백업 단일 데이터베이스

  • PostgreSQL 서버에서 단일 데이터베이스를 백업합니다. "-d"명령줄 옵션을 사용하여 pg_dump 명령에 데이터베이스 이름을 제공합니다. mydb 대신 실제 데이터베이스 이름을 바꿔야 합니다.
    pg_dump -h localhost -U postgres -W -d mydb > mydb.sql 
    
  • PostgreSQL의 백업에서 단일 데이터베이스를 복원합니다. "psql"명령을 사용하여 PostgreSQL 데이터베이스를 복원하십시오.
    psql -h localhost -U postgres -W -d mydb < mydb.sql 
    
  • 2. PostgreSQL 백업 모든 데이터베이스

  • pg_dumpall 유틸리티를 사용하여 PostgreSQL의 모든 데이터베이스를 백업합니다.
    pg_dumpall -h localhost -U postgres -W > alldbs.sql 
    
  • 복원: 다음 명령을 사용하여 모든 데이터베이스 백업.
    psql -h localhost -U postgres -W < alldbs.sql 
    
  • 3. PostgreSQL 백업 단일 테이블

  • 백업: mydb 데이터베이스에서 mytable이라는 단일 테이블.
    pg_dump -h localhost -U postgres -d mydb -W -t table_1 > mydb-table_1.sql 
    
  • 복원: 단일 테이블을 데이터베이스에 백업합니다. 백업 파일에 복원하려는 단일 테이블 백업만 포함되어 있는지 확인하십시오.
    psql -h localhost -U postgres -W -d mydb < mydb-table_1.sql 
    
  • 4. 압축 백업 및 데이터베이스 복원

  • PostgreSQL 데이터베이스를 압축 형식으로 백업합니다. gzip 명령줄 유틸리티를 사용하여 파이프된 백업 데이터를 수락하고 아카이브 파일을 만듭니다.
    pg_dump -h localhost -U postgres -W -d mydb | gzip > mydb.sql.gz 
    
  • 압축된 백업 파일에서 직접 데이터베이스를 복원합니다. 여기서 gunzip은 백업 파일을 추출하고 파이프 인터페이스를 통해 psql 명령으로 데이터를 보냅니다.
    gunzip -c mydb.sql.gz | psql -h localhost -U postgres -W -d mydb 
    
  • 5. 여러 파일의 분할 백업 및 복원

  • 백업: PostgreSQL 데이터베이스 및 지정된 크기의 여러 파일로 백업을 분할합니다. 그것은 우리가 큰 데이터베이스를 백업하고 다른 호스트로 쉽게 전송할 수 있도록 도와줍니다. 아래 예에 따라 100MB 크기의 백업 파일을 분할합니다.
    pg_dump -h localhost -U postgres -W -d mydb | split -b 100m – mydb.pql 
    
  • 복원: 여러 분할 백업 파일에서 데이터베이스 백업.
    cat mydb.sql* | psql -h localhost -U postgres -W -d mydb 
    
  • 백업: 지정된 크기의 압축 분할 파일에 있는 데이터베이스.
    pg_dump -h localhost -U postgres -W -d mydb | gzip | split -b 100m – mydb.sql.gz 
    
  • 복원: 압축 파일의 여러 파일에서 데이터베이스.
    cat mydb.sql.gz* | gunzip | psql -h localhost -U postgres -W -d mydb 
    
  • 결론

    이 자습서에서는 PostgreSQL 서버 데이터베이스, 테이블의 백업 및 복원에 대해 배웠습니다.