1. 백업

 

pg_dump 와 pg_dumpall 프로그램을 이용해서 실행을 한다.

 

사용법)

  pg_dump [옵션] [해당디비이름] > 저장할 파일명 | 하나의 데이타베이스만 백업하고자 할때

  pg_dumpall [옵션] > 저장할 파일명                      | 전체 디비를 백업하고자 할때

 

주요옵션의 종류

-C(대문자): 데이타베이스의 생성부분까지 백업을 하라는 옵션

-a : 데이타만 백업 (copy to)

-d : 데이타만 백업 / 복구 (insert 쿼리로 덤프)

-s : 스키마만 백업 / 복구

 

==>

 

데이타만을 백업하고자 할때는

pg_dump -d test > test.dmp (작은단위 디비의 경우에만 사용)

pg_dump -a test > test.dmp

정도의 실행이면되고.

 

 

스키마만 백업해서 다른 컴퓨터에 같은 디비를 만들고자 할때는

pg_dump -Cs test > test_schema.sql

를 사용하면 된다.

 

 

보통 백업이라하면 만약에 경우 새로 생성하는 것을 대비하는 것이기 때문에 -C옵션은 필수이다

동일한 디비를 다른 머신에서 구축하고자 할때는 -s 옵션으로 그 뼈대만을 백업해서 작업하면

불필요한 데이타의 이동은 피할 수 있다.

 

cf .  pg_dump -s 로 만든 백업 파일엔 create 관련 sql이 빠져있고

       pg_dump -Cs 는 create가 들어 있다.  -Cs는 아무것도 없는 곳(database)에 복구할 목적으로

                     -s는 database가 존재하는 곳에 복구하기 위한 백업이다.

 

 

2. 복구

 

1) 스키마 복구 / 복원

 

복구는 여러가지 방식이 있지만 가장 쉬운 방식을 설명하겟다.

 

psql [아무디비이름/존재하는것] < test_schema.sql

 

(아마도 vim test_schema.sql 해본사람이면 알겠지만 dump의 내용은 sql 문으로 구성되어 있다.

 위와 같이 실행하면 그 sql을 순서대로 실행하는 것과 같은 역할을 한다.

 아무 디비에 대해서 실행을 해도 새로운 디비를 생성하고 만드는 sql 이기 때문에 상관이 없다.

 디비가 없다면  createdb aaa 로 더미 디비를 생성한다. )

 

을 실행하면 sql이 실행되면서 관련 응답이 나오게 되고 특별한 이상이 없이 끝나면

 

복구는 완료 된다.

+ Recent posts