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이 실행되면서 관련 응답이 나오게 되고 특별한 이상이 없이 끝나면
복구는 완료 된다.
'배워서 남주자 > Data Base' 카테고리의 다른 글
[oracle] Listener 관련 (0) | 2018.03.28 |
---|---|
[Postgresql] 접속 제어 (0) | 2018.03.23 |
[postgresql] 초간단 명령어 설명. (0) | 2018.03.23 |
[PostgreSQL] 소유권 및 패스워드 변경 (0) | 2018.03.23 |
[MySQL & MariaDB] 설치 후 이것/저것 (0) | 2018.03.23 |