PostgreSQL에서 데이터베이스를 복구하는 커맨드라인 명령어로 pg_restore가 존재합니다.  

pg_restore에는 몇 가지 옵션들을 지정할 수 있는데요. 


pg_restore --help를 통해 확인할 수 있습니다. 너무 많아서 약간 줄였습니다. 


pg_restore restores a PostgreSQL database from an archive created by pg_dump.

Usage:  pg_restore [OPTION]... [FILE]


General options:

  -d, --dbname=NAME        connect to database name

  -f, --file=FILENAME      output file name

  -F, --format=c|d|t       backup file format (should be automatic)

  -l, --list               print summarized TOC of the archive

  -v, --verbose            verbose mode

  -V, --version            output version information, then exit

  -?, --help               show this help, then exit


Options controlling the restore:

  -a, --data-only              restore only the data, no schema

  -c, --clean                  clean (drop) database objects before recreating

  -C, --create                 create the target database

  -e, --exit-on-error          exit on error, default is to continue

  -I, --index=NAME             restore named index

  -j, --jobs=NUM               use this many parallel jobs to restore

   ..................

   .................. 

Connection options:

  -h, --host=HOSTNAME      database server host or socket directory

  -p, --port=PORT          database server port number

  -U, --username=NAME      connect as specified database user

  -w, --no-password        never prompt for password

  -W, --password           force password prompt (should happen automatically)

  --role=ROLENAME          do SET ROLE before restore


PostgreSQL에서 백업을 완료한 상태면 백업 파일을 하나 가지고 계실 건데요. 

이를 활용해서 복구를 수행할 수 있습니다. pgAdmin3를 사용해도 간단하지만 반드시 그래픽 유저 인터페이스를 활용할 수 있는 상황이 아닐 수도 있으니깐요. 


위 옵션을 적당히 조합하면 되지만 예시로 아래와 같은 명령어를 통해 복구할 수있습니다. 


1. psql -U postgres -c "CREATE DATABASE databasename"

2. pg_restore -U postgres -d databasename -v ./db.backup



1번째 줄은 데이터베이스를 하나 생성하는 것이구요.

2번째 줄은 db.backup 파일을 이용해서 데이터베이스를 복구하는 명령어 입니다.


2번째 줄의 옵셕으로 -U, -d , -v 가 사용되었는데요.


-U는 데이터베이스에 접근해서 복구를 수행할 사용자가 되겠네요. 

-d는 복구할 데이터베이스 이름이구요.

-v는 복구하는 과정에서 출력되는 것을 확인하고자 할 때 사용하는 옵션입니다. 


맨 마지막에 있는 db.backup은 복구에 사용될 백업 파일입니다. 


추가) 위 빨간색 박스안에 있는 옵션에서도 확인할 수 있는데요.

         원격지에 위치한 데이터베이스에도 접근해서 복구할 수 있습니다. 

         물론 외부에서 접근 가능하도록 설정되어 있어야겠죠.





+ Recent posts