PostgreSQL의 데이터 백업 및 복원

# 백업

아래의 명령은 데이터베이스 명이 gis이며 테이블 중 ctprvn, sig, emd, road, li를 디렉토리 형식(–foramt=d)로 하여 gis_db_dump라는 파일로 백업하는 명령입니다.

pg_dump --dbname=gis --host=localhost --port=5432 --table=ctprvn --table=sig --table=emd --table=road --table=li --username=postgres --password --format=d --file=./gis_db_dump

참고로 –table 옵션을 지정하지 않으면 지정된 데이터베이스 전체 테이블을 백업합니다.

Windows에서 일반 text(sql 형식)으로 백업 받는 경우의 명령으로 관리자 권한으로 cmd를 실행한다. 아래의 명령에 의해 gis 데이터베이스의 모든 테이블의 데이터를 db.sql 파일이 생성되어 백업된다.

pg_dump --dbname=gis --username=postgres --file=d:/__Temp__/db.sql

# 복구

또한 아래는 위에서 백업한 내용을 gis_20181022 데이터 베이스로 복원시키는 명령입니다.

pg_restore --dbname=gis_20181022 --host=localhost --port=5432 --username=postgres --password --format=d ./gis_db_dump

리눅스에서 실행하기 위해서는 su – postgres 를 실행하여 권한을 얻을 필요가 있습니다. pg_dump 실행 시 –format을 지정하지 않으면 텍스트 형식으로 덤프 파일이 만들어지는데 이 덤프 파일은 pg_restore를 통해 복원하지 않고 psql을 통해 복원합니다. 즉, psql를 실행하여 데이터베이스에 연결하고(\c) 덤프 파일을 실행(\i) 합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다