8.0버젼에 신기술인 Point in Time Recovery을 사용해보고 싶어서
안되는 실력으로
고생한 결과가 나왔네요 ^^;;
처음엔 Postgres에서 제공하는 메뉴얼만 보면서 무수한 실패를
하다가
외국사이트에서 자료를 찾아보다가 성공하게 됐네요...
일단 제가 사용한 버젼은 8.1.1이구요.. 소스 컴파일로
설치했습니다..
인스톨은 여기 문서 참고해서 거의 그대로 했구요...
그럼 우선 PITR 사용법(?) 입니다..
1. postgresql.conf 파일 수정
WRITE AHEAD LOG 섹션부분 옵션 전부 활성화시킴
archive_command = 'cp %p /(백업할 경로)/%f'
ex) archive_command = 'cp %p /mnt/server/archivedir/%f'
2. PGDATA를 물리적으로 백업
select pg_start_backup('label');
\!tar cpf /mnt/server/archivedir/Data_Full_backup.tar
data
select pg_stop_backup();
3. 백업 후 갱신 데이터 작성
insert into ~~~~
4. Postgres 정지
5. pg_xlog 백업
cd data
tar cpf /mnt/server/archivedir/pg_xlog_backup.tar
6. 기존 데이터 삭제
cd ..
rm -rf data
7. 백업받은 데이터 복구
tar xvf /mnt/server/archivedir/Data_Full_backup.tar
8. 최신 pg_xlog 교체
cd data
rm -rf pg_xlog
tar xvf /mnt/server/archivedir/pg_xlog_backup.tar
9. recovery.conf 수정
restore_command = 'cp /mnt/server/archivedir/%f %p'
선택사항 : recovery_target_time = '2005-12-16 13:20:00 KST'
<- 특정시점까지의 복원
10. Postgres 가동
휴~ 이렇게 해서 시점 복원까지 성공했구요...
아직 실제 적용은 어떻게 해야할지는 모르겠내요...
그리고 테스트한 테이블은 timestamp데이터만
가지고있었습니다...
|