database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7139 게시물 읽기
No. 7139
Archieve log를 이용한 복구에 대해서 두번째 질문 드립니다 ㅠ_ㅠ
작성자
신종관(신종관)
작성일
2007-05-15 14:47
조회수
5,365

먼저 질문 답해주셔서 감사합니다^^

archive command와 restore command를

archive_command = 'copy %p c:\\backup\\%f'와

restore_command = 'copy c:\\backup\\%f "%p"'로 놓았습니다.

 

1.select pg_start_backup('label');  (function start)

2.select pg_stop_backup(); (function stop)

3.data폴더 통채로 어디다 카피해두기

4.function start

5.이것저것 변경(table 생성등)

6.function stop

7.DB stop

7.pg_xlog폴더 카피해놓기

8.data폴더 삭제

9.3번에서 copy해둔 data폴더 다시 카피해넣기

10.7번에서 copy해둔 pg_xlog 폴더 다시 카피해넣기

11.recovery.done으로 되어있으면 recovery.conf로 수정

12.DB Start

위와 같이 진행하면 복구는 되는데요.. 이렇게 하면 관리가 힘들것 같아서 pg_dump 혹은 pg_dumpall과 같이 사용하려합니다.

 


1. pg_dump, pg_dumpall

2. function start

3. 이것저것 변경

4. function stop

5. pg_xlog파일 copy해놓기

6. dumpall 받은것 풀기

7. DB Stop

8. function stop했을때와 dump 혹은 dumpall 푼 후의 pg_xlog파일 차이발생. 5번에서 copy한 pg_xlog로 교체

9. recovery.conf생성

10. DB Start

이렇게 하면 에러가 발생하더라고요...(5번과 8번을 생략하여도, 1번과 2번의 순서를 바꾸어도)

2007-05-15 12:02:18 LOG:  database system was shut down at 2007-05-15 12:01:52 대한민국 표준시
2007-05-15 12:02:18 LOG:  starting archive recovery
2007-05-15 12:02:18 LOG:  restore_command = "copy c:\\backup\\%f "%p""
2007-05-15 12:02:19 LOG:  could not open file "pg_xlog/00000001000000000000003F" (log file 0, segment 63): No such file or directory
2007-05-15 12:02:19 LOG:  invalid primary checkpoint record
2007-05-15 12:02:19 LOG:  could not open file "pg_xlog/00000001000000000000003F" (log file 0, segment 63): No such file or directory
2007-05-15 12:02:19 LOG:  invalid secondary checkpoint record
2007-05-15 12:02:19 PANIC:  could not locate a valid checkpoint record

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
2007-05-15 12:02:19 LOG:  startup process (PID 4580) exited with exit code 3
2007-05-15 12:02:19 LOG:  aborting startup due to startup process failure
2007-05-15 12:02:19 LOG:  logger shutting down

아무래도 dump나 dumpall로 받은 것을 풀려면 DB가 Start상태여야 하는데 이 때 풀면서 xlog에 log들이 쌓이면서

8번에서 xlog를 교체할때 서로 바라보는 check point가 달라서 에러가 나는 것 같습니다...

(recovery를 안시켜도 위의 PANIC메세지가 뜹니다)
(copy한 xlog폴더에는 3E까지 있습니다.)

 

제가 진행한 과정에서 문제가 있는 것일까요...?

아니면 dump와 xlog를 병행해서 복구시키는 방법이 없는걸까요...?

지금은 그래서 윈도우 스케쥴러에서 data폴더를 zip파일로 압축해서 보관하는 방법도 생각하고 있습니다^^;;
(zip으로 압축해놓았다가 풀면 잘됩니다...)

답변좀 부탁드리겠습니다 ㅠ_ㅠ

그리고 밑의 글의 삭제좀 부탁드리겠습니다...제가 보면서 카운터가 올라가고.. 아무래도 지워주시면 감사하겠습니다(__)

이 글에 대한 댓글이 총 2건 있습니다.

저도 그 방법을 생각해 봤는데, 
방법을 못 찾았습니다. 

온라인 백업을 사용하려면, 데이터베이스클러스트가 완벽하게 동일해야합니다. 
그래야 의도된 대로 움직이더라구요. 

즉, pg_dump 로 풀 것이 아니라, 
데이터 디렉토리 전체를 os 차원에서 백업을 받아야할 것 같네요.
그런데, db 서비스 중인 상태에서 백업을 받는게 그리 타당한 방법이 아닌 듯한데, 
딱히 
이 온라인백업의 가장 깔끔한 방법을 찾질 못했습니다. 

일단은 완벽하게 똑같은 DB 시스템이 있고, 원본DB에서 initdb 한 결과를 그대로 복사해야합니다. 
사본 DB에서 독립적으로 initdb하는 것이 아니라.

여튼 그렇게 하고, 트랜잭션 ID들이 완벽하게 일치한다면, 의도된 대로 온라인백업이 가능하기는 합니다. ^^

참한 방법을 찾으셨으면 이곳에 알려주시면 저도 도움을 받을 것같네요.

김상기(ioseph)님이 2007-05-15 16:06에 작성한 댓글입니다.

참한 방법을 찾으려 노력해봤지만 결국 못찾아냈네요...털썩...OTL....

그래서 일단은 zip파일과 온라인백업을 이용해서 복구하는 시나리오로 갔습니다^^;;

시간이 주어지면 조금 더 연구해보려고요^^

그런데...또 문제가 주어지네요..ㅠ_ㅠ

압축된 zip파일과 xlog안의 백업파일들을 1주일 이상 지난것은 알아서 지워지게 bat파일을 만들라고 하는데...

아무리 생각해도 답이 안떠오르네요...;ㅁ;

일단 백업 받는 것은.. 해매다가 윈도우 예약작업에 bat파일 하루에 한번씩 돌게 넣어놓고..

cd C:\Program Files\PostgreSQL\8.2\bin

psql -t -c "select pg_start_backup('label');" -U postgres MDM_TEST

cd C:\Program Files\PostgreSQL\8.2

zip -r %date%.zip .\data\*

cd C:\Program Files\PostgreSQL\8.2\bin

psql -t -c "select pg_stop_backup();" -U postgres MDM_TEST


이렇게 해놓으니...  2007-05-16.zip 이런식으로 나와주기는 하는데...

bat파일에서 1주일 이상된 파일들을 검색할 방법이....;;;

또 연구하고 있습니다 ㅠ_ㅠ
--------------------------------5/18-------------------------------------------
bat파일로 검색해서 log정리하는 것 만들었습니다..;; 관심있으신분은 말씀주세요^^;;

신종관(신종관)님이 2007-05-16 15:22에 작성한 댓글입니다.
이 댓글은 2007-05-18 13:39에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7142dblink 로 select, insert, update, delete
i2801
2007-05-22
5263
7141쿼리가 로그에 출력되게 하면, postgres가 다운되어 버립니다. [4]
dba
2007-05-21
4760
7140psql의 경우에 text 타입의 크기가 정해져 있나요? [3]
textSize
2007-05-17
5373
7139Archieve log를 이용한 복구에 대해서 두번째 질문 드립니다 ㅠ_ㅠ [2]
신종관
2007-05-15
5365
7138Archive log를 이용한 복구의 또 질문인데요...ㅠ [1]
2007-05-15
5823
7137오라클과 PostgreSQL 중 무엇이 선택할 것인가? [3]
유명진
2007-05-12
5339
7136Archieve log를 이용한 복구에 대해서 질문드립니다...ㅠ [1]
신종관
2007-05-11
5035
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다